structmapper_codegen/
lib.rs1extern crate proc_macro;
2
3use quote::quote;
4use syn::{parse_macro_input, DeriveInput};
5
6mod derive;
7mod value_expr;
8
9use derive::Derive;
10
11#[proc_macro_derive(StructMapper, attributes(struct_mapper))]
12#[proc_macro_error::proc_macro_error]
13pub fn derive_mapper(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
14 let input = parse_macro_input!(tokens as DeriveInput);
15 let derive: Derive = Derive::from_derive_input(&input);
16 let tokens = quote!(#derive);
17 tokens.into()
18}