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}