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 31 32 33 34 35 36 37 38 39 40
use proc_macro::TokenStream; mod de; mod parser_helper; mod ser; mod utils; #[derive(Debug, PartialEq, Eq, Clone, Copy)] enum FieldType { Normal, WildCardFields, WildCardUnknown, Phantom, } impl FieldType { fn is_wildcard(self) -> bool { self == FieldType::WildCardUnknown || self == FieldType::WildCardFields } fn is_phantom(self) -> bool { self == FieldType::Phantom } } #[proc_macro_derive( Serialize_int_map, attributes(int_map_id, int_map_unknown, int_map_ignore, int_map_phantom) )] pub fn derive_serialize_int_map(input: TokenStream) -> TokenStream { ser::impl_derive_serialize_int_map(input) } #[proc_macro_derive( Deserialize_int_map, attributes(int_map_id, int_map_unknown, int_map_ignore, int_map_phantom) )] pub fn derive_deserialize_int_map(input: TokenStream) -> TokenStream { de::impl_derive_deserialize_int_map(input) }