extern crate proc_macro; // Cargo.toml への追記は必要ない use proc_macro::TokenStream; #[proc_macro_derive(Hoge)] pub fn derive_hoge(input: TokenStream) -> TokenStream { // ここに実体を記述する. } TokenStream の実体は libsyntax 内で定義されている syntax::tokenstream::TokenStream をラップしたものであり 1 ,提供されているメソッドが文字列への変換程度しかなく解析結果を直接用いることが出来ないようになっています 2.そのため現状では TokenStream を一旦文字列に変換して構文解析し直すことが必要です.この際に必要となる Rust コードの構文解析器は syn という cr
![proc_macro を使ってみる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/cbc1f0f7d57c0fbd7dc87d81bc07542c36a83eff/height=288;version=1;width=512/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fqiita-fb-2887e7b4aad86fd8c25cea84846f2236.png)