Antes de escrever macros, vamos falar sobre como precisamos pensar sobre as coisas:
Em vez de trabalhar com
Tokenstreams, trabalharemos com
Uma AST (Sintaxe Resumo) gerada por
Syn ::* funções e macros.():
Às vezes é mais fácil iniciar com uma string ou vec
String), analise isso em um tokenstream usando syn :: parse_str ().Você pode encontrar todos os exemplos pedagógicos de macros mostrados neste artigo neste
repo
🌟 Por favor, estrela o repo R3BL_RS_UTILS no github se
você gosta 🙏.()
função (por exemplo: em uma macro derivada):
É assim que você analisa uma string em um proc_macro2 :: tokenstream usando o parse_str ()
função.():
Então, para lidar com genéricos, onde você pode ter vários tipos e onde cláusulas, aqui está o código simples
🎉.
Fonte: https://developerlife.com/2022/03/30/rust-proc-macro/