1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
extern crate proc_macro; extern crate syn; #[macro_use] extern crate quote; mod utils; mod decode; mod encode; use { decode::impl_decode_macro, encode::impl_encode_macro, syn::{parse_macro_input, DeriveInput}, }; #[proc_macro_derive(Encode)] pub fn encode_macro_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { let ast = parse_macro_input!(input as DeriveInput); let output = impl_encode_macro(&ast); proc_macro::TokenStream::from(output) } #[proc_macro_derive(Decode)] pub fn decode_macro_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { let ast = parse_macro_input!(input as DeriveInput); let output = impl_decode_macro(&ast); proc_macro::TokenStream::from(output) }