2014-12-11 10 views
5

Mi piacerebbe creare un setter/una coppia di funzioni in cui i nomi vengono generati automaticamente in base a un componente condiviso, ma non sono riuscito a trovare alcun esempio di regole macro che generano un nuovo nome.Una macro Rust può creare nuovi identificatori?

C'è un modo per generare codice come fn get_$iden() e SomeEnum::XX_GET_$enum_iden?

risposta

4

No, non a partire da Rust 1.22.


Se è possibile utilizzare nightly build ...

Sì: concat_idents!(get_, $iden) e tale vi permetterà di creare un nuovo identificatore.

Ma no: il parser non consente le chiamate macro ovunque, quindi molte delle posizioni che potresti aver cercato di fare non funzioneranno. In questi casi, sei tristemente da solo. fn concat_idents!(get_, $iden)(…) { … }, ad esempio, non funzionerà.

Problemi correlati