5aa163f27e
This reverts commit 999b94d6ae
.
608 lines
31 KiB
Rust
608 lines
31 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
enum Lifetimes<'a> {
|
|
LifetimeSeq(&'a i32),
|
|
NoLifetimeSeq(i32),
|
|
LifetimeMap { a: &'a i32 },
|
|
NoLifetimeMap { a: i32 },
|
|
}
|
|
#[doc(hidden)]
|
|
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
|
|
const _: () = {
|
|
#[allow(rust_2018_idioms, clippy::useless_attribute)]
|
|
extern crate serde as _serde;
|
|
#[automatically_derived]
|
|
impl<'a> _serde::Serialize for Lifetimes<'a> {
|
|
fn serialize<__S>(
|
|
&self,
|
|
__serializer: __S,
|
|
) -> _serde::__private::Result<__S::Ok, __S::Error>
|
|
where
|
|
__S: _serde::Serializer,
|
|
{
|
|
match *self {
|
|
Lifetimes::LifetimeSeq(ref __field0) => {
|
|
_serde::Serializer::serialize_newtype_variant(
|
|
__serializer,
|
|
"Lifetimes",
|
|
0u32,
|
|
"LifetimeSeq",
|
|
__field0,
|
|
)
|
|
}
|
|
Lifetimes::NoLifetimeSeq(ref __field0) => {
|
|
_serde::Serializer::serialize_newtype_variant(
|
|
__serializer,
|
|
"Lifetimes",
|
|
1u32,
|
|
"NoLifetimeSeq",
|
|
__field0,
|
|
)
|
|
}
|
|
Lifetimes::LifetimeMap { ref a } => {
|
|
let mut __serde_state = match _serde::Serializer::serialize_struct_variant(
|
|
__serializer,
|
|
"Lifetimes",
|
|
2u32,
|
|
"LifetimeMap",
|
|
0 + 1,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
match _serde::ser::SerializeStructVariant::serialize_field(
|
|
&mut __serde_state,
|
|
"a",
|
|
a,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
_serde::ser::SerializeStructVariant::end(__serde_state)
|
|
}
|
|
Lifetimes::NoLifetimeMap { ref a } => {
|
|
let mut __serde_state = match _serde::Serializer::serialize_struct_variant(
|
|
__serializer,
|
|
"Lifetimes",
|
|
3u32,
|
|
"NoLifetimeMap",
|
|
0 + 1,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
match _serde::ser::SerializeStructVariant::serialize_field(
|
|
&mut __serde_state,
|
|
"a",
|
|
a,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
_serde::ser::SerializeStructVariant::end(__serde_state)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
#[doc(hidden)]
|
|
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
|
|
const _: () = {
|
|
#[allow(rust_2018_idioms, clippy::useless_attribute)]
|
|
extern crate serde as _serde;
|
|
#[automatically_derived]
|
|
impl<'de, 'a> _serde::Deserialize<'de> for Lifetimes<'a> {
|
|
fn deserialize<__D>(__deserializer: __D) -> _serde::__private::Result<Self, __D::Error>
|
|
where
|
|
__D: _serde::Deserializer<'de>,
|
|
{
|
|
#[allow(non_camel_case_types)]
|
|
enum __Field {
|
|
__field0,
|
|
__field1,
|
|
__field2,
|
|
__field3,
|
|
}
|
|
struct __FieldVisitor;
|
|
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
|
|
type Value = __Field;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result {
|
|
_serde::__private::Formatter::write_str(__formatter, "variant identifier")
|
|
}
|
|
fn visit_u64<__E>(self, __value: u64) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
0u64 => _serde::__private::Ok(__Field::__field0),
|
|
1u64 => _serde::__private::Ok(__Field::__field1),
|
|
2u64 => _serde::__private::Ok(__Field::__field2),
|
|
3u64 => _serde::__private::Ok(__Field::__field3),
|
|
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
|
_serde::de::Unexpected::Unsigned(__value),
|
|
&"variant index 0 <= i < 4",
|
|
)),
|
|
}
|
|
}
|
|
fn visit_str<__E>(
|
|
self,
|
|
__value: &str,
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
"LifetimeSeq" => _serde::__private::Ok(__Field::__field0),
|
|
"NoLifetimeSeq" => _serde::__private::Ok(__Field::__field1),
|
|
"LifetimeMap" => _serde::__private::Ok(__Field::__field2),
|
|
"NoLifetimeMap" => _serde::__private::Ok(__Field::__field3),
|
|
_ => _serde::__private::Err(_serde::de::Error::unknown_variant(
|
|
__value, VARIANTS,
|
|
)),
|
|
}
|
|
}
|
|
fn visit_bytes<__E>(
|
|
self,
|
|
__value: &[u8],
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
b"LifetimeSeq" => _serde::__private::Ok(__Field::__field0),
|
|
b"NoLifetimeSeq" => _serde::__private::Ok(__Field::__field1),
|
|
b"LifetimeMap" => _serde::__private::Ok(__Field::__field2),
|
|
b"NoLifetimeMap" => _serde::__private::Ok(__Field::__field3),
|
|
_ => {
|
|
let __value = &_serde::__private::from_utf8_lossy(__value);
|
|
_serde::__private::Err(_serde::de::Error::unknown_variant(
|
|
__value, VARIANTS,
|
|
))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
impl<'de> _serde::Deserialize<'de> for __Field {
|
|
#[inline]
|
|
fn deserialize<__D>(
|
|
__deserializer: __D,
|
|
) -> _serde::__private::Result<Self, __D::Error>
|
|
where
|
|
__D: _serde::Deserializer<'de>,
|
|
{
|
|
_serde::Deserializer::deserialize_identifier(__deserializer, __FieldVisitor)
|
|
}
|
|
}
|
|
struct __Visitor<'de, 'a> {
|
|
marker: _serde::__private::PhantomData<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData<&'de ()>,
|
|
}
|
|
impl<'de, 'a> _serde::de::Visitor<'de> for __Visitor<'de, 'a> {
|
|
type Value = Lifetimes<'a>;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result {
|
|
_serde::__private::Formatter::write_str(__formatter, "enum Lifetimes")
|
|
}
|
|
fn visit_enum<__A>(
|
|
self,
|
|
__data: __A,
|
|
) -> _serde::__private::Result<Self::Value, __A::Error>
|
|
where
|
|
__A: _serde::de::EnumAccess<'de>,
|
|
{
|
|
match match _serde::de::EnumAccess::variant(__data) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
} {
|
|
(__Field::__field0, __variant) => _serde::__private::Result::map(
|
|
_serde::de::VariantAccess::newtype_variant::<&'a i32>(__variant),
|
|
Lifetimes::LifetimeSeq,
|
|
),
|
|
(__Field::__field1, __variant) => _serde::__private::Result::map(
|
|
_serde::de::VariantAccess::newtype_variant::<i32>(__variant),
|
|
Lifetimes::NoLifetimeSeq,
|
|
),
|
|
(__Field::__field2, __variant) => {
|
|
#[allow(non_camel_case_types)]
|
|
enum __Field {
|
|
__field0,
|
|
__ignore,
|
|
}
|
|
struct __FieldVisitor;
|
|
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
|
|
type Value = __Field;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result
|
|
{
|
|
_serde::__private::Formatter::write_str(
|
|
__formatter,
|
|
"field identifier",
|
|
)
|
|
}
|
|
fn visit_u64<__E>(
|
|
self,
|
|
__value: u64,
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
0u64 => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
fn visit_str<__E>(
|
|
self,
|
|
__value: &str,
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
"a" => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
fn visit_bytes<__E>(
|
|
self,
|
|
__value: &[u8],
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
b"a" => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
}
|
|
impl<'de> _serde::Deserialize<'de> for __Field {
|
|
#[inline]
|
|
fn deserialize<__D>(
|
|
__deserializer: __D,
|
|
) -> _serde::__private::Result<Self, __D::Error>
|
|
where
|
|
__D: _serde::Deserializer<'de>,
|
|
{
|
|
_serde::Deserializer::deserialize_identifier(
|
|
__deserializer,
|
|
__FieldVisitor,
|
|
)
|
|
}
|
|
}
|
|
struct __Visitor<'de, 'a> {
|
|
marker: _serde::__private::PhantomData<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData<&'de ()>,
|
|
}
|
|
impl<'de, 'a> _serde::de::Visitor<'de> for __Visitor<'de, 'a> {
|
|
type Value = Lifetimes<'a>;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result
|
|
{
|
|
_serde::__private::Formatter::write_str(
|
|
__formatter,
|
|
"struct variant Lifetimes::LifetimeMap",
|
|
)
|
|
}
|
|
#[inline]
|
|
fn visit_seq<__A>(
|
|
self,
|
|
mut __seq: __A,
|
|
) -> _serde::__private::Result<Self::Value, __A::Error>
|
|
where
|
|
__A: _serde::de::SeqAccess<'de>,
|
|
{
|
|
let __field0 = match match _serde::de::SeqAccess::next_element::<
|
|
&'a i32,
|
|
>(
|
|
&mut __seq
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
} {
|
|
_serde::__private::Some(__value) => __value,
|
|
_serde::__private::None => {
|
|
return _serde :: __private :: Err (_serde :: de :: Error :: invalid_length (0usize , & "struct variant Lifetimes::LifetimeMap with 1 element")) ;
|
|
}
|
|
};
|
|
_serde::__private::Ok(Lifetimes::LifetimeMap { a: __field0 })
|
|
}
|
|
#[inline]
|
|
fn visit_map<__A>(
|
|
self,
|
|
mut __map: __A,
|
|
) -> _serde::__private::Result<Self::Value, __A::Error>
|
|
where
|
|
__A: _serde::de::MapAccess<'de>,
|
|
{
|
|
let mut __field0: _serde::__private::Option<&'a i32> =
|
|
_serde::__private::None;
|
|
while let _serde::__private::Some(__key) =
|
|
match _serde::de::MapAccess::next_key::<__Field>(&mut __map)
|
|
{
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
}
|
|
{
|
|
match __key {
|
|
__Field::__field0 => {
|
|
if _serde::__private::Option::is_some(&__field0) {
|
|
return _serde :: __private :: Err (< __A :: Error as _serde :: de :: Error > :: duplicate_field ("a")) ;
|
|
}
|
|
__field0 = _serde::__private::Some(
|
|
match _serde::de::MapAccess::next_value::<&'a i32>(
|
|
&mut __map,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
},
|
|
);
|
|
}
|
|
_ => {
|
|
let _ = match _serde::de::MapAccess::next_value::<
|
|
_serde::de::IgnoredAny,
|
|
>(
|
|
&mut __map
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
let __field0 = match __field0 {
|
|
_serde::__private::Some(__field0) => __field0,
|
|
_serde::__private::None => {
|
|
match _serde::__private::de::missing_field("a") {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_serde::__private::Ok(Lifetimes::LifetimeMap { a: __field0 })
|
|
}
|
|
}
|
|
const FIELDS: &'static [&'static str] = &["a"];
|
|
_serde::de::VariantAccess::struct_variant(
|
|
__variant,
|
|
FIELDS,
|
|
__Visitor {
|
|
marker: _serde::__private::PhantomData::<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData,
|
|
},
|
|
)
|
|
}
|
|
(__Field::__field3, __variant) => {
|
|
#[allow(non_camel_case_types)]
|
|
enum __Field {
|
|
__field0,
|
|
__ignore,
|
|
}
|
|
struct __FieldVisitor;
|
|
impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
|
|
type Value = __Field;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result
|
|
{
|
|
_serde::__private::Formatter::write_str(
|
|
__formatter,
|
|
"field identifier",
|
|
)
|
|
}
|
|
fn visit_u64<__E>(
|
|
self,
|
|
__value: u64,
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
0u64 => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
fn visit_str<__E>(
|
|
self,
|
|
__value: &str,
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
"a" => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
fn visit_bytes<__E>(
|
|
self,
|
|
__value: &[u8],
|
|
) -> _serde::__private::Result<Self::Value, __E>
|
|
where
|
|
__E: _serde::de::Error,
|
|
{
|
|
match __value {
|
|
b"a" => _serde::__private::Ok(__Field::__field0),
|
|
_ => _serde::__private::Ok(__Field::__ignore),
|
|
}
|
|
}
|
|
}
|
|
impl<'de> _serde::Deserialize<'de> for __Field {
|
|
#[inline]
|
|
fn deserialize<__D>(
|
|
__deserializer: __D,
|
|
) -> _serde::__private::Result<Self, __D::Error>
|
|
where
|
|
__D: _serde::Deserializer<'de>,
|
|
{
|
|
_serde::Deserializer::deserialize_identifier(
|
|
__deserializer,
|
|
__FieldVisitor,
|
|
)
|
|
}
|
|
}
|
|
struct __Visitor<'de, 'a> {
|
|
marker: _serde::__private::PhantomData<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData<&'de ()>,
|
|
}
|
|
impl<'de, 'a> _serde::de::Visitor<'de> for __Visitor<'de, 'a> {
|
|
type Value = Lifetimes<'a>;
|
|
fn expecting(
|
|
&self,
|
|
__formatter: &mut _serde::__private::Formatter,
|
|
) -> _serde::__private::fmt::Result
|
|
{
|
|
_serde::__private::Formatter::write_str(
|
|
__formatter,
|
|
"struct variant Lifetimes::NoLifetimeMap",
|
|
)
|
|
}
|
|
#[inline]
|
|
fn visit_seq<__A>(
|
|
self,
|
|
mut __seq: __A,
|
|
) -> _serde::__private::Result<Self::Value, __A::Error>
|
|
where
|
|
__A: _serde::de::SeqAccess<'de>,
|
|
{
|
|
let __field0 = match match _serde::de::SeqAccess::next_element::<
|
|
i32,
|
|
>(
|
|
&mut __seq
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
} {
|
|
_serde::__private::Some(__value) => __value,
|
|
_serde::__private::None => {
|
|
return _serde :: __private :: Err (_serde :: de :: Error :: invalid_length (0usize , & "struct variant Lifetimes::NoLifetimeMap with 1 element")) ;
|
|
}
|
|
};
|
|
_serde::__private::Ok(Lifetimes::NoLifetimeMap { a: __field0 })
|
|
}
|
|
#[inline]
|
|
fn visit_map<__A>(
|
|
self,
|
|
mut __map: __A,
|
|
) -> _serde::__private::Result<Self::Value, __A::Error>
|
|
where
|
|
__A: _serde::de::MapAccess<'de>,
|
|
{
|
|
let mut __field0: _serde::__private::Option<i32> =
|
|
_serde::__private::None;
|
|
while let _serde::__private::Some(__key) =
|
|
match _serde::de::MapAccess::next_key::<__Field>(&mut __map)
|
|
{
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
}
|
|
{
|
|
match __key {
|
|
__Field::__field0 => {
|
|
if _serde::__private::Option::is_some(&__field0) {
|
|
return _serde :: __private :: Err (< __A :: Error as _serde :: de :: Error > :: duplicate_field ("a")) ;
|
|
}
|
|
__field0 = _serde::__private::Some(
|
|
match _serde::de::MapAccess::next_value::<i32>(
|
|
&mut __map,
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
},
|
|
);
|
|
}
|
|
_ => {
|
|
let _ = match _serde::de::MapAccess::next_value::<
|
|
_serde::de::IgnoredAny,
|
|
>(
|
|
&mut __map
|
|
) {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
let __field0 = match __field0 {
|
|
_serde::__private::Some(__field0) => __field0,
|
|
_serde::__private::None => {
|
|
match _serde::__private::de::missing_field("a") {
|
|
_serde::__private::Ok(__val) => __val,
|
|
_serde::__private::Err(__err) => {
|
|
return _serde::__private::Err(__err);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_serde::__private::Ok(Lifetimes::NoLifetimeMap { a: __field0 })
|
|
}
|
|
}
|
|
const FIELDS: &'static [&'static str] = &["a"];
|
|
_serde::de::VariantAccess::struct_variant(
|
|
__variant,
|
|
FIELDS,
|
|
__Visitor {
|
|
marker: _serde::__private::PhantomData::<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData,
|
|
},
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const VARIANTS: &'static [&'static str] = &[
|
|
"LifetimeSeq",
|
|
"NoLifetimeSeq",
|
|
"LifetimeMap",
|
|
"NoLifetimeMap",
|
|
];
|
|
_serde::Deserializer::deserialize_enum(
|
|
__deserializer,
|
|
"Lifetimes",
|
|
VARIANTS,
|
|
__Visitor {
|
|
marker: _serde::__private::PhantomData::<Lifetimes<'a>>,
|
|
lifetime: _serde::__private::PhantomData,
|
|
},
|
|
)
|
|
}
|
|
}
|
|
};
|