mini_internal/
fallback.rs

1use proc_macro2::TokenStream;
2use quote::quote;
3use syn::DeriveInput;
4
5pub(crate) fn ser(input: &DeriveInput, error: syn::Error) -> TokenStream {
6    let ident = &input.ident;
7    let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
8
9    let error = error.into_compile_error();
10
11    quote! {
12        #error
13
14        #[allow(deprecated)]
15        impl #impl_generics miniserde::Serialize for #ident #ty_generics #where_clause {
16            fn begin(&self) -> miniserde::ser::Fragment {
17                miniserde::__private::unreachable!()
18            }
19        }
20    }
21}
22
23pub(crate) fn de(input: &DeriveInput, error: syn::Error) -> TokenStream {
24    let ident = &input.ident;
25    let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
26
27    let error = error.into_compile_error();
28
29    quote! {
30        #error
31
32        #[allow(deprecated)]
33        impl #impl_generics miniserde::Deserialize for #ident #ty_generics #where_clause {
34            fn begin(__out: &mut miniserde::__private::Option<Self>) -> &mut dyn miniserde::de::Visitor {
35                miniserde::__private::unreachable!()
36            }
37        }
38    }
39}