mini_internal/
fallback.rs1use crate::private;
2use proc_macro2::TokenStream;
3use quote::quote;
4use syn::DeriveInput;
5
6pub(crate) fn ser(input: &DeriveInput, error: syn::Error) -> TokenStream {
7 let ident = &input.ident;
8 let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
9
10 let error = error.into_compile_error();
11
12 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&error, &mut _s);
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "deprecated");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&impl_generics, &mut _s);
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Serialize");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::ToTokens::to_tokens(&ty_generics, &mut _s);
::quote::ToTokens::to_tokens(&where_clause, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "begin");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ser");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Fragment");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&private, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
}quote! {
13 #error
14
15 #[allow(deprecated)]
16 impl #impl_generics miniserde::Serialize for #ident #ty_generics #where_clause {
17 fn begin(&self) -> miniserde::ser::Fragment {
18 miniserde::#private::unreachable!()
19 }
20 }
21 }
22}
23
24pub(crate) fn de(input: &DeriveInput, error: syn::Error) -> TokenStream {
25 let ident = &input.ident;
26 let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
27
28 let error = error.into_compile_error();
29
30 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&error, &mut _s);
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "deprecated");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&impl_generics, &mut _s);
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Deserialize");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::ToTokens::to_tokens(&ty_generics, &mut _s);
::quote::ToTokens::to_tokens(&where_clause, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "begin");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "__out");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&private, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "de");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Visitor");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "miniserde");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&private, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
}quote! {
31 #error
32
33 #[allow(deprecated)]
34 impl #impl_generics miniserde::Deserialize for #ident #ty_generics #where_clause {
35 fn begin(__out: &mut miniserde::#private::Option<Self>) -> &mut dyn miniserde::de::Visitor {
36 miniserde::#private::unreachable!()
37 }
38 }
39 }
40}