rs_blocks_derive/lib.rs
1extern crate proc_macro;
2use proc_macro::TokenStream;
3
4#[proc_macro_derive(Configure)]
5pub fn derive_configure(input: TokenStream) -> TokenStream {
6 let ast = syn::parse(input).unwrap();
7 impl_configure(&ast)
8}
9
10fn impl_configure(ast: &syn::DeriveInput) -> TokenStream {
11 let name = &ast.ident;
12 let gen = quote::quote! {
13 impl Configure for #name {
14 fn get_name(&self) -> String {
15 self.name.clone()
16 }
17 }
18 };
19 gen.into()
20}