msgpack_schema_impl/
lib.rs1mod attr;
2mod deserialize;
3mod serialize;
4
5use proc_macro::TokenStream;
6use syn::{parse_macro_input, DeriveInput};
7
8#[proc_macro_derive(Serialize, attributes(schema, tag, optional, untagged, flatten))]
10pub fn derive_serialize(input: TokenStream) -> TokenStream {
11 let input = parse_macro_input!(input as DeriveInput);
12 serialize::derive(&input)
13 .unwrap_or_else(|err| err.to_compile_error())
14 .into()
15}
16
17#[proc_macro_derive(Deserialize, attributes(schema, tag, optional, untagged, flatten))]
19pub fn derive_deserialize(input: TokenStream) -> TokenStream {
20 let input = parse_macro_input!(input as DeriveInput);
21 deserialize::derive(&input)
22 .unwrap_or_else(|err| err.to_compile_error())
23 .into()
24}