serdine_derive 0.6.0

Derive macros for serdine crate
Documentation
#![deny(clippy::all)]
#![allow(
  // style includes the useful `redundant_closure`
  clippy::assign_op_pattern,
  clippy::collapsible_else_if,
  clippy::collapsible_if,
  clippy::comparison_chain,
  clippy::derive_partial_eq_without_eq,
  clippy::len_zero,
  clippy::manual_range_contains,
  clippy::new_without_default,
  clippy::too_many_arguments,
  clippy::type_complexity,
)]

mod bail;
mod collection;
mod deserialize;
mod fields_data;
mod serialize;
mod target;

use deserialize::impl_deserialize;
use proc_macro::TokenStream;
use serialize::impl_serialize;

#[proc_macro_derive(Deserialize, attributes(deserialize))]
pub fn deserialize(input: TokenStream) -> TokenStream {
    let deserialize_impl = impl_deserialize(input);

    deserialize_impl
        .unwrap_or_else(syn::Error::into_compile_error)
        .into()
}

#[proc_macro_derive(Serialize, attributes(serialize))]
pub fn serialize(input: TokenStream) -> TokenStream {
    let serialize_impl = impl_serialize(input);

    serialize_impl
        .unwrap_or_else(syn::Error::into_compile_error)
        .into()
}