1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use proc_macro::TokenStream as TokenStream1; mod gen; mod ir; mod util; #[proc_macro_derive(Config, attributes(config))] pub fn config(input: TokenStream1) -> TokenStream1 { syn::parse2::<syn::DeriveInput>(input.into()) .and_then(ir::Input::from_ast) .map(gen::gen) .unwrap_or_else(|e| e.to_compile_error()) .into() }