mini-internal 0.1.45

Derive macros for miniserde. Use the re-exports from the miniserde crate instead.
Documentation
use crate::private;
use proc_macro2::TokenStream;
use quote::quote;
use syn::DeriveInput;

pub(crate) fn ser(input: &DeriveInput, error: syn::Error) -> TokenStream {
    let ident = &input.ident;
    let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();

    let error = error.into_compile_error();

    quote! {
        #error

        #[allow(deprecated)]
        impl #impl_generics miniserde::Serialize for #ident #ty_generics #where_clause {
            fn begin(&self) -> miniserde::ser::Fragment {
                miniserde::#private::unreachable!()
            }
        }
    }
}

pub(crate) fn de(input: &DeriveInput, error: syn::Error) -> TokenStream {
    let ident = &input.ident;
    let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();

    let error = error.into_compile_error();

    quote! {
        #error

        #[allow(deprecated)]
        impl #impl_generics miniserde::Deserialize for #ident #ty_generics #where_clause {
            fn begin(__out: &mut miniserde::#private::Option<Self>) -> &mut dyn miniserde::de::Visitor {
                miniserde::#private::unreachable!()
            }
        }
    }
}