extern crate proc_macro; | |
use proc_macro::*; | |
#[proc_macro] | |
pub fn lifetimes_bang(input: TokenStream) -> TokenStream { | |
// Roundtrip through token trees | |
input.into_iter().collect() | |
} | |
#[proc_macro_attribute] | |
pub fn lifetimes_attr(_: TokenStream, input: TokenStream) -> TokenStream { | |
// Roundtrip through AST | |
input | |
} | |
#[proc_macro_derive(Lifetimes)] | |
pub fn lifetimes_derive(input: TokenStream) -> TokenStream { | |
// Roundtrip through a string | |
format!("mod m {{ {} }}", input).parse().unwrap() | |
} |