1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
mod de; mod ser; use proc_macro::TokenStream; use syn::{parse_macro_input, DeriveInput}; #[proc_macro_derive(Serialize)] pub fn derive_serialize(input: TokenStream) -> TokenStream { let input = parse_macro_input!(input as DeriveInput); ser::impl_serialize(input) } #[proc_macro_derive(Deserialize)] pub fn derive_deserialize(input: TokenStream) -> TokenStream { let input = parse_macro_input!(input as DeriveInput); de::impl_deserialize(input) }