2014-12-11 7 views
5

Ich möchte ein Setter/Getter-Paar von Funktionen erstellen, wo die Namen automatisch basierend auf einer gemeinsamen Komponente generiert werden, aber ich konnte kein Beispiel für Makroregeln finden, die einen neuen Namen generieren.Kann ein Rust-Makro neue Kennungen erstellen?

Gibt es eine Möglichkeit, Code wie fn get_$iden() und SomeEnum::XX_GET_$enum_iden zu generieren?

Antwort

4

Nein, nicht ab Rust 1.22.


Wenn Sie Nightly Builds ...

Ja verwenden können: concat_idents!(get_, $iden) und so können Sie eine neue Kennung erstellen.

Aber nein: Der Parser lässt keine Makroaufrufe überall zu, so dass viele der Orte, die Sie möglicherweise gesucht haben, nicht funktionieren. In solchen Fällen sind Sie leider alleine. fn concat_idents!(get_, $iden)(…) { … }, zum Beispiel, wird nicht funktionieren.

Verwandte Themen