Voici un tableau de référence des macros du Rust :
| Macro | Description |
|---|---|
| assert | Cette macro permet de vérifier qu'une expression booléenne est vraie à l'exécution, et déclenche une panique si ce n'est pas le cas. |
| assert_eq | Cette macro permet de vérifier que deux expressions sont égales (via le trait PartialEq), et génère une panique en cas d'inégalité. |
| assert_ne | Cette macro permet de vérifier que deux expressions ne sont pas égales, et panique si elles sont identiques. |
| cfg | Cette macro permet d'évaluer des combinaisons de drapeaux de configuration à la compilation, utile pour la compilation conditionnelle. |
| cfg_match (expérimental) | Cette macro permet de définir des structures similaires à match en fonction des conditions de compilation (#[cfg]), pour sélectionner du code selon les plateformes ou les options activées. |
| column | Cette macro permet d'obtenir le numéro de colonne dans le fichier source où elle est appelée, sous forme de constante u32. |
| compile_error | Cette macro permet de provoquer une erreur de compilation explicite avec un message personnalisé, utilisée pour signaler des cas invalides à la compilation. |
| concat | Cette macro permet de concaténer des littéraux en une seule tranche de chaîne statique (&'static str), à la compilation. |
| concat_bytes (expérimental) | Cette macro permet de concaténer plusieurs littéraux en une seule tranche d'octets (&'static [u8]) à la compilation. |
| concat_idents (dépréciée, expérimental) | Cette macro permet de fusionner plusieurs identifiants en un seul, ce qui est utile dans certains générateurs de code, mais elle est sujette à suppression. |
| const_format_args (expérimental) | Cette macro permet de construire des arguments de formatage utilisables dans certains contextes const, à la différence de format_args! classique. |
| dbg | Cette macro permet d'afficher une expression avec son nom et sa valeur vers la sortie d'erreur standard, tout en renvoyant la valeur, utile pour le débogage rapide. |
| debug_assert | Cette macro permet de faire une vérification conditionnelle uniquement en mode debug, en s'assurant qu'une expression booléenne est vraie. |
| debug_assert_eq | Cette macro permet de comparer deux expressions en mode debug uniquement, en vérifiant qu'elles sont égales et en paniquant sinon. |
| debug_assert_ne | Cette macro permet de vérifier que deux expressions ne sont pas égales en mode debug, et provoque une panique si elles le sont. |
| env | Cette macro permet de lire la valeur d'une variable d'environnement au moment de la compilation, retournant une chaîne littérale. |
| eprint | Cette macro permet d'écrire une chaîne de caractères vers la sortie d'erreur standard (stderr), sans ajout automatique de saut de ligne. |
| eprintln | Cette macro permet d'écrire une ligne avec saut de ligne à la sortie d'erreur standard, similaire à eprint!, mais avec retour à la ligne. |
| file | Cette macro permet d'obtenir le nom du fichier source où elle est invoquée, sous forme de constante &'static str. |
| format | Cette macro permet de créer une String formatée à partir d'expressions d'exécution, en utilisant une syntaxe d'interpolation. |
| format_args | Cette macro permet de construire des arguments de formatage sans générer directement une String, servant de base à d'autres macros comme print! ou write!. |
| format_args_nl (expérimental) | Cette macro permet de formater des arguments comme avec format_args!, mais ajoute automatiquement un saut de ligne à la fin. |
| include | Cette macro permet d'inclure le contenu d'un fichier externe en tant qu'expression ou élément, selon le contexte dans lequel elle est utilisée. |
| include_bytes | Cette macro permet d'inclure un fichier externe sous forme de référence à un tableau d'octets (&'static [u8]), utile pour intégrer des ressources binaires. |
| include_str | Cette macro permet d'inclure un fichier externe encodé en UTF-8 sous forme de chaîne statique (&'static str), au moment de la compilation. |
| is_x86_feature_detected | Cette macro permet de vérifier à l'exécution si une fonctionnalité spécifique du processeur x86/x86-64 est disponible, comme SSE ou AVX. |
| line | Cette macro permet d'obtenir le numéro de ligne dans le fichier source où elle est invoquée, en tant que constante u32. |
| log_syntax (expérimental) | Cette macro permet d'afficher les jetons passés en argument vers la sortie standard, utile pour le débogage de macros. |
| matches | Cette macro permet de tester si une expression correspond à un motif donné, retournant un booléen (true ou false). |
| module_path | Cette macro permet d'obtenir une chaîne représentant le chemin complet du module dans lequel elle est utilisée, sous forme de &'static str. |
| option_env | Cette macro permet d'interroger une variable d'environnement à la compilation, retournant une Option<&'static str> si elle est définie. |
| panic | Cette macro permet de provoquer une panique (arrêt brutal du processus léger courant) avec un message personnalisé. |
| Cette macro permet d'afficher une chaîne formatée vers la sortie standard (stdout), sans ajout de saut de ligne. | |
| println | Cette macro permet d'afficher une ligne formatée vers la sortie standard, avec un saut de ligne automatique à la fin. |
| stringify | Cette macro permet de convertir les arguments donnés en une chaîne littérale telle qu'écrite dans le code source. |
| thread_local | Cette macro permet de déclarer une variable locale à un processus léger, via une clef de type std::thread::LocalKey<T>. |
| todo | Cette macro permet d'indiquer une portion de code incomplète, en provoquant une panique à l'exécution avec le message "not yet implemented". |
| trace_macros (expérimental) | Cette macro permet d'activer ou de désactiver le traçage des macros durant la compilation, pour aider à diagnostiquer leur expansion. |
| try (dépréciée) | Cette macro permettait de déballer un résultat (Result) ou de propager l'erreur automatiquement, mais elle est maintenant remplacée par l'opérateur ?. |
| unimplemented | Cette macro permet d'indiquer une fonction ou un bloc non implémenté, en provoquant une panique avec le message "not implemented". |
| unreachable | Cette macro permet d'indiquer qu'un morceau de code ne devrait jamais être atteint, et provoque une panique si ce cas se produit à l'exécution. |
| vec | Cette macro permet de créer un vecteur (Vec<T>) contenant les éléments spécifiés, avec un raccourci syntaxique flexible. |
| write | Cette macro permet d'écrire des données formatées dans un tampon implémentant le trait std::fmt::Write, sans saut de ligne. |
| writeln | Cette macro permet d'écrire des données formatées dans un tampon, en ajoutant automatiquement un saut de ligne à la fin. |
Dernière mise à jour : Mardi, le 5 août 2025