1#![deny(clippy::all)]
2#![allow(
3 clippy::assign_op_pattern,
5 clippy::collapsible_else_if,
6 clippy::collapsible_if,
7 clippy::comparison_chain,
8 clippy::derive_partial_eq_without_eq,
9 clippy::len_zero,
10 clippy::manual_range_contains,
11 clippy::new_without_default,
12 clippy::too_many_arguments,
13 clippy::type_complexity,
14)]
15
16mod bail;
17mod collection;
18mod deserialize;
19mod fields_data;
20mod serialize;
21mod target;
22
23use deserialize::impl_deserialize;
24use proc_macro::TokenStream;
25use serialize::impl_serialize;
26
27#[proc_macro_derive(Deserialize, attributes(deserialize))]
28pub fn deserialize(input: TokenStream) -> TokenStream {
29 let deserialize_impl = impl_deserialize(input);
30
31 deserialize_impl
32 .unwrap_or_else(syn::Error::into_compile_error)
33 .into()
34}
35
36#[proc_macro_derive(Serialize, attributes(serialize))]
37pub fn serialize(input: TokenStream) -> TokenStream {
38 let serialize_impl = impl_serialize(input);
39
40 serialize_impl
41 .unwrap_or_else(syn::Error::into_compile_error)
42 .into()
43}