Macros procédurales

Nous allons construire lors de ces travaux pratiques quelques macros procédurales. Nous aurons besoin d'en écrire de nouvelles lors de la partie consacrée à la programmation asynchrone.

  1. Créez un crate macros qui indique dans son Cargo.toml être la source de macros procédurales :
[lib]
proc_macro = true
  1. Ajoutez les dépendances que nous utiliserons pour manipuler les tokens et l'arbre de syntaxe abstrait et pour signaler les erreurs :
  • proc-macro2 pour la manipulation des tokens
  • quote pour la génération de code avec template
  • syn avec les features full, visit-mut et parsing
  • proc-macro-error pour émettre de meilleurs messages d'erreur
  • trybuild pour pouvoir tester les erreurs renvoyées par nos macros

Tout au long de cette partie, vous êtes invités à utiliser des sous-modules pour y stocker vos fonctions utilitaires. Seules les définitions de macro procédurales elles-même doivent se trouver au niveau supérieur du crate.