serdine_derive/
lib.rs

1#![deny(clippy::all)]
2#![allow(
3  // style includes the useful `redundant_closure`
4  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}