smart_serde_default/lib.rs
1use proc_macro::TokenStream;
2use syn::{parse_macro_input, Item};
3
4mod smart_serde_default;
5
6#[proc_macro_attribute]
7pub fn smart_serde_default(_attr: TokenStream, input: TokenStream) -> TokenStream {
8 let item = parse_macro_input!(input as Item);
9
10 match item {
11 Item::Struct(s) => smart_serde_default::expand_struct(s),
12 _ => panic!("Can only be used on structs."),
13 }
14}