serde_implicit_proc/lib.rs
1use proc_macro::TokenStream as TS1;
2use syn::{DeriveInput, parse_macro_input};
3
4mod ast;
5mod expand;
6mod tuple_enum;
7
8// todo: shadow serde completely?
9#[proc_macro_derive(Deserialize, attributes(serde_implicit))]
10pub fn derive_serialize(input: TS1) -> TS1 {
11 let input = parse_macro_input!(input as DeriveInput);
12
13 let ts = expand::expand_derive_serialize(input)
14 .unwrap_or_else(syn::Error::into_compile_error)
15 .into();
16
17 ts
18}