1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
extern crate num;
extern crate serde;
pub enum Enum {
A,
B(u32),
C {
a: i8,
b: i8,
},
}
impl ::serde::ser::Serialize for Enum {
fn serialize<__S>(&self, serializer: &mut __S) -> ::std::result::Result<(), __S::Error>
where __S: ::serde::ser::Serializer
{
match *self {
Enum::A => {
::serde::ser::Serializer::serialize_unit_variant(serializer, "Enum", 0usize, "A")
}
Enum::B(ref __simple_value) => {
::serde::ser::Serializer::serialize_newtype_variant(serializer,
"Enum",
1usize,
"B",
__simple_value)
}
Enum::C { a: ref __field0, b: ref __field1 } => {
struct __VariantStruct<'__variant> {
a: &'__variant i8,
b: &'__variant i8,
#[serde(skip_serializing)]
__phantom: ::std::marker::PhantomData<Enum>,
}
struct Visitor<'__variant: '__a, '__a> {
state: usize,
value: __VariantStruct<'__variant>,
_structure_ty: ::std::marker::PhantomData<&'__a __VariantStruct<'__variant>>,
}
impl<'__variant: '__a, '__a> ::serde::ser::MapVisitor for Visitor<'__variant, '__a> {
#[inline]
fn visit<S>(&mut self,
serializer: &mut S)
-> ::std::result::Result<Option<()>, S::Error>
where S: ::serde::ser::Serializer
{
loop {
match self.state {
0usize => {
self.state += 1;
{
}
return Ok(Some(match serializer.serialize_struct_variant_elt("a",
&self.value.a)
{
::std::result::Result::Ok(val)
=> val,
::std::result::Result::Err(err)
=> {
return ::std::result::Result::Err(::std::convert::From::from(err))
}
}));
}
1usize => {
self.state += 1;
{
}
return Ok(Some(match serializer.serialize_struct_variant_elt("b",
&self.value.b)
{
::std::result::Result::Ok(val)
=> val,
::std::result::Result::Err(err)
=> {
return ::std::result::Result::Err(::std::convert::From::from(err))
}
}));
}
_ => {
return Ok(None);
}
}
}
}
#[inline]
fn len(&self) -> Option<usize> {
Some(0 + 1 + 1)
}
}
serializer.serialize_struct_variant("Enum", 2usize, "C",
Visitor{value:
__VariantStruct{a:
__field0,
b:
__field1,
__phantom:
::std::marker::PhantomData::<Enum>,},
state: 0,
_structure_ty:
::std::marker::PhantomData,})
}
}
}
}