Coverage Report

Created: 2026-01-17 06:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.136/src/de/impls.rs
Line
Count
Source
1
use lib::*;
2
3
use de::{
4
    Deserialize, Deserializer, EnumAccess, Error, SeqAccess, Unexpected, VariantAccess, Visitor,
5
};
6
7
#[cfg(any(feature = "std", feature = "alloc", not(no_core_duration)))]
8
use de::MapAccess;
9
10
use seed::InPlaceSeed;
11
12
#[cfg(any(feature = "std", feature = "alloc"))]
13
use __private::size_hint;
14
15
////////////////////////////////////////////////////////////////////////////////
16
17
struct UnitVisitor;
18
19
impl<'de> Visitor<'de> for UnitVisitor {
20
    type Value = ();
21
22
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
23
0
        formatter.write_str("unit")
24
0
    }
25
26
0
    fn visit_unit<E>(self) -> Result<Self::Value, E>
27
0
    where
28
0
        E: Error,
29
0
    {
30
0
        Ok(())
31
0
    }
32
}
33
34
impl<'de> Deserialize<'de> for () {
35
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
36
0
    where
37
0
        D: Deserializer<'de>,
38
0
    {
39
0
        deserializer.deserialize_unit(UnitVisitor)
40
0
    }
41
}
42
43
#[cfg(feature = "unstable")]
44
impl<'de> Deserialize<'de> for ! {
45
    fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
46
    where
47
        D: Deserializer<'de>,
48
    {
49
        Err(Error::custom("cannot deserialize `!`"))
50
    }
51
}
52
53
////////////////////////////////////////////////////////////////////////////////
54
55
struct BoolVisitor;
56
57
impl<'de> Visitor<'de> for BoolVisitor {
58
    type Value = bool;
59
60
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
61
0
        formatter.write_str("a boolean")
62
0
    }
63
64
0
    fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E>
65
0
    where
66
0
        E: Error,
67
0
    {
68
0
        Ok(v)
69
0
    }
70
}
71
72
impl<'de> Deserialize<'de> for bool {
73
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
74
0
    where
75
0
        D: Deserializer<'de>,
76
0
    {
77
0
        deserializer.deserialize_bool(BoolVisitor)
78
0
    }
79
}
80
81
////////////////////////////////////////////////////////////////////////////////
82
83
macro_rules! impl_deserialize_num {
84
    ($primitive:ident, $nonzero:ident $(cfg($($cfg:tt)*))*, $deserialize:ident $($method:ident!($($val:ident : $visit:ident)*);)*) => {
85
        impl_deserialize_num!($primitive, $deserialize $($method!($($val : $visit)*);)*);
86
87
        #[cfg(all(not(no_num_nonzero), $($($cfg)*)*))]
88
        impl<'de> Deserialize<'de> for num::$nonzero {
89
2.52k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
90
2.52k
            where
91
2.52k
                D: Deserializer<'de>,
92
2.52k
            {
93
                struct NonZeroVisitor;
94
95
                impl<'de> Visitor<'de> for NonZeroVisitor {
96
                    type Value = num::$nonzero;
97
98
17
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
17
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
17
                    }
<<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Line
Count
Source
98
7
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
7
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
7
                    }
<<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Line
Count
Source
98
1
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
1
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
1
                    }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
<<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Line
Count
Source
98
7
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
7
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
7
                    }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
<<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Line
Count
Source
98
2
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
2
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
2
                    }
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::expecting
101
102
                    $($($method!(nonzero $primitive $val : $visit);)*)*
103
                }
104
105
2.52k
                deserializer.$deserialize(NonZeroVisitor)
106
2.52k
            }
<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
89
561
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
90
561
            where
91
561
                D: Deserializer<'de>,
92
561
            {
93
                struct NonZeroVisitor;
94
95
                impl<'de> Visitor<'de> for NonZeroVisitor {
96
                    type Value = num::$nonzero;
97
98
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
                    }
101
102
                    $($($method!(nonzero $primitive $val : $visit);)*)*
103
                }
104
105
561
                deserializer.$deserialize(NonZeroVisitor)
106
561
            }
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
89
449
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
90
449
            where
91
449
                D: Deserializer<'de>,
92
449
            {
93
                struct NonZeroVisitor;
94
95
                impl<'de> Visitor<'de> for NonZeroVisitor {
96
                    type Value = num::$nonzero;
97
98
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
                    }
101
102
                    $($($method!(nonzero $primitive $val : $visit);)*)*
103
                }
104
105
449
                deserializer.$deserialize(NonZeroVisitor)
106
449
            }
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
89
700
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
90
700
            where
91
700
                D: Deserializer<'de>,
92
700
            {
93
                struct NonZeroVisitor;
94
95
                impl<'de> Visitor<'de> for NonZeroVisitor {
96
                    type Value = num::$nonzero;
97
98
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
                    }
101
102
                    $($($method!(nonzero $primitive $val : $visit);)*)*
103
                }
104
105
700
                deserializer.$deserialize(NonZeroVisitor)
106
700
            }
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
89
811
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
90
811
            where
91
811
                D: Deserializer<'de>,
92
811
            {
93
                struct NonZeroVisitor;
94
95
                impl<'de> Visitor<'de> for NonZeroVisitor {
96
                    type Value = num::$nonzero;
97
98
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
99
                        formatter.write_str(concat!("a nonzero ", stringify!($primitive)))
100
                    }
101
102
                    $($($method!(nonzero $primitive $val : $visit);)*)*
103
                }
104
105
811
                deserializer.$deserialize(NonZeroVisitor)
106
811
            }
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::<_>
107
        }
108
    };
109
110
    ($primitive:ident, $deserialize:ident $($method:ident!($($val:ident : $visit:ident)*);)*) => {
111
        impl<'de> Deserialize<'de> for $primitive {
112
            #[inline]
113
100k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
100k
            where
115
100k
                D: Deserializer<'de>,
116
100k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
0
                        formatter.write_str(stringify!($primitive))
124
0
                    }
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::expecting
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
100k
                deserializer.$deserialize(PrimitiveVisitor)
130
100k
            }
<i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
445
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
445
            where
115
445
                D: Deserializer<'de>,
116
445
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
445
                deserializer.$deserialize(PrimitiveVisitor)
130
445
            }
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
387
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
387
            where
115
387
                D: Deserializer<'de>,
116
387
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
387
                deserializer.$deserialize(PrimitiveVisitor)
130
387
            }
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
7.05k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
7.05k
            where
115
7.05k
                D: Deserializer<'de>,
116
7.05k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
7.05k
                deserializer.$deserialize(PrimitiveVisitor)
130
7.05k
            }
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
85.8k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
85.8k
            where
115
85.8k
                D: Deserializer<'de>,
116
85.8k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
85.8k
                deserializer.$deserialize(PrimitiveVisitor)
130
85.8k
            }
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
2.50k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
2.50k
            where
115
2.50k
                D: Deserializer<'de>,
116
2.50k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
2.50k
                deserializer.$deserialize(PrimitiveVisitor)
130
2.50k
            }
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
2.00k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
2.00k
            where
115
2.00k
                D: Deserializer<'de>,
116
2.00k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
2.00k
                deserializer.$deserialize(PrimitiveVisitor)
130
2.00k
            }
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
113
2.06k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
114
2.06k
            where
115
2.06k
                D: Deserializer<'de>,
116
2.06k
            {
117
                struct PrimitiveVisitor;
118
119
                impl<'de> Visitor<'de> for PrimitiveVisitor {
120
                    type Value = $primitive;
121
122
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
123
                        formatter.write_str(stringify!($primitive))
124
                    }
125
126
                    $($($method!($val : $visit);)*)*
127
                }
128
129
2.06k
                deserializer.$deserialize(PrimitiveVisitor)
130
2.06k
            }
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <i128 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <u128 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <i8 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <i16 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <i32 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <i64 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <isize as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <u8 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <u16 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <u32 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <u64 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <usize as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <f32 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <f64 as serde::de::Deserialize>::deserialize::<_>
131
        }
132
    };
133
}
134
135
macro_rules! num_self {
136
    ($ty:ident : $visit:ident) => {
137
        #[inline]
138
99.5k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
99.5k
        where
140
99.5k
            E: Error,
141
99.5k
        {
142
99.5k
            Ok(v)
143
99.5k
        }
<<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i128::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
403
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
403
        where
140
403
            E: Error,
141
403
        {
142
403
            Ok(v)
143
403
        }
<<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u128::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
350
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
350
        where
140
350
            E: Error,
141
350
        {
142
350
            Ok(v)
143
350
        }
<<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
7.03k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
7.03k
        where
140
7.03k
            E: Error,
141
7.03k
        {
142
7.03k
            Ok(v)
143
7.03k
        }
<<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
85.3k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
85.3k
        where
140
85.3k
            E: Error,
141
85.3k
        {
142
85.3k
            Ok(v)
143
85.3k
        }
<<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
2.42k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
2.42k
        where
140
2.42k
            E: Error,
141
2.42k
        {
142
2.42k
            Ok(v)
143
2.42k
        }
<<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
1.94k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
1.94k
        where
140
1.94k
            E: Error,
141
1.94k
        {
142
1.94k
            Ok(v)
143
1.94k
        }
<<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
138
2.00k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
139
2.00k
        where
140
2.00k
            E: Error,
141
2.00k
        {
142
2.00k
            Ok(v)
143
2.00k
        }
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i128::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u128::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_f32::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_f64::<_>
144
    };
145
146
    (nonzero $primitive:ident $ty:ident : $visit:ident) => {
147
2.37k
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
148
2.37k
        where
149
2.37k
            E: Error,
150
2.37k
        {
151
2.37k
            if let Some(nonzero) = Self::Value::new(v) {
152
2.35k
                Ok(nonzero)
153
            } else {
154
17
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
155
            }
156
2.37k
        }
<<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i128::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
147
518
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
148
518
        where
149
518
            E: Error,
150
518
        {
151
518
            if let Some(nonzero) = Self::Value::new(v) {
152
511
                Ok(nonzero)
153
            } else {
154
7
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
155
            }
156
518
        }
<<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u128::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
147
408
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
148
408
        where
149
408
            E: Error,
150
408
        {
151
408
            if let Some(nonzero) = Self::Value::new(v) {
152
407
                Ok(nonzero)
153
            } else {
154
1
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
155
            }
156
408
        }
<<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
147
670
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
148
670
        where
149
670
            E: Error,
150
670
        {
151
670
            if let Some(nonzero) = Self::Value::new(v) {
152
663
                Ok(nonzero)
153
            } else {
154
7
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
155
            }
156
670
        }
<<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
147
775
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
148
775
        where
149
775
            E: Error,
150
775
        {
151
775
            if let Some(nonzero) = Self::Value::new(v) {
152
773
                Ok(nonzero)
153
            } else {
154
2
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
155
            }
156
775
        }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i128::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u128::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
157
    };
158
}
159
160
macro_rules! num_as_self {
161
    ($ty:ident : $visit:ident) => {
162
        #[inline]
163
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
164
0
        where
165
0
            E: Error,
166
0
        {
167
0
            Ok(v as Self::Value)
168
0
        }
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_f64::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<f32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_f32::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<f64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
169
    };
170
171
    (nonzero $primitive:ident $ty:ident : $visit:ident) => {
172
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
173
0
        where
174
0
            E: Error,
175
0
        {
176
0
            if let Some(nonzero) = Self::Value::new(v as $primitive) {
177
0
                Ok(nonzero)
178
            } else {
179
0
                Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
180
            }
181
0
        }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
182
    };
183
}
184
185
macro_rules! int_to_int {
186
    ($ty:ident : $visit:ident) => {
187
        #[inline]
188
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
189
0
        where
190
0
            E: Error,
191
0
        {
192
0
            if Self::Value::min_value() as i64 <= v as i64
193
0
                && v as i64 <= Self::Value::max_value() as i64
194
            {
195
0
                Ok(v as Self::Value)
196
            } else {
197
0
                Err(Error::invalid_value(Unexpected::Signed(v as i64), &self))
198
            }
199
0
        }
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
200
    };
201
202
    (nonzero $primitive:ident $ty:ident : $visit:ident) => {
203
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
204
0
        where
205
0
            E: Error,
206
0
        {
207
0
            if $primitive::min_value() as i64 <= v as i64
208
0
                && v as i64 <= $primitive::max_value() as i64
209
            {
210
0
                if let Some(nonzero) = Self::Value::new(v as $primitive) {
211
0
                    return Ok(nonzero);
212
0
                }
213
0
            }
214
0
            Err(Error::invalid_value(Unexpected::Signed(v as i64), &self))
215
0
        }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
216
    };
217
}
218
219
macro_rules! int_to_uint {
220
    ($ty:ident : $visit:ident) => {
221
        #[inline]
222
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
223
0
        where
224
0
            E: Error,
225
0
        {
226
0
            if 0 <= v && v as u64 <= Self::Value::max_value() as u64 {
227
0
                Ok(v as Self::Value)
228
            } else {
229
0
                Err(Error::invalid_value(Unexpected::Signed(v as i64), &self))
230
            }
231
0
        }
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<u64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i64::<_>
232
    };
233
234
    (nonzero $primitive:ident $ty:ident : $visit:ident) => {
235
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
236
0
        where
237
0
            E: Error,
238
0
        {
239
0
            if 0 < v && v as u64 <= $primitive::max_value() as u64 {
240
0
                if let Some(nonzero) = Self::Value::new(v as $primitive) {
241
0
                    return Ok(nonzero);
242
0
                }
243
0
            }
244
0
            Err(Error::invalid_value(Unexpected::Signed(v as i64), &self))
245
0
        }
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i64::<_>
246
    };
247
}
248
249
macro_rules! uint_to_self {
250
    ($ty:ident : $visit:ident) => {
251
        #[inline]
252
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
253
0
        where
254
0
            E: Error,
255
0
        {
256
0
            if v as u64 <= Self::Value::max_value() as u64 {
257
0
                Ok(v as Self::Value)
258
            } else {
259
0
                Err(Error::invalid_value(Unexpected::Unsigned(v as u64), &self))
260
            }
261
0
        }
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<i8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<i16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<i32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<i64 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<isize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<u8 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<u16 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<u32 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<usize as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u64::<_>
262
    };
263
264
    (nonzero $primitive:ident $ty:ident : $visit:ident) => {
265
0
        fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
266
0
        where
267
0
            E: Error,
268
0
        {
269
0
            if v as u64 <= $primitive::max_value() as u64 {
270
0
                if let Some(nonzero) = Self::Value::new(v as $primitive) {
271
0
                    return Ok(nonzero);
272
0
                }
273
0
            }
274
0
            Err(Error::invalid_value(Unexpected::Unsigned(v as u64), &self))
275
0
        }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<i64> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u8::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<isize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u16::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u8> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u16> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u32> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u32::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<usize> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u64::<_>
276
    };
277
}
278
279
impl_deserialize_num! {
280
    i8, NonZeroI8 cfg(not(no_num_nonzero_signed)), deserialize_i8
281
    num_self!(i8:visit_i8);
282
    int_to_int!(i16:visit_i16 i32:visit_i32 i64:visit_i64);
283
    uint_to_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
284
}
285
286
impl_deserialize_num! {
287
    i16, NonZeroI16 cfg(not(no_num_nonzero_signed)), deserialize_i16
288
    num_self!(i16:visit_i16);
289
    num_as_self!(i8:visit_i8);
290
    int_to_int!(i32:visit_i32 i64:visit_i64);
291
    uint_to_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
292
}
293
294
impl_deserialize_num! {
295
    i32, NonZeroI32 cfg(not(no_num_nonzero_signed)), deserialize_i32
296
    num_self!(i32:visit_i32);
297
    num_as_self!(i8:visit_i8 i16:visit_i16);
298
    int_to_int!(i64:visit_i64);
299
    uint_to_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
300
}
301
302
impl_deserialize_num! {
303
    i64, NonZeroI64 cfg(not(no_num_nonzero_signed)), deserialize_i64
304
    num_self!(i64:visit_i64);
305
    num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32);
306
    uint_to_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
307
}
308
309
impl_deserialize_num! {
310
    isize, NonZeroIsize cfg(not(no_num_nonzero_signed)), deserialize_i64
311
    num_as_self!(i8:visit_i8 i16:visit_i16);
312
    int_to_int!(i32:visit_i32 i64:visit_i64);
313
    uint_to_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
314
}
315
316
impl_deserialize_num! {
317
    u8, NonZeroU8, deserialize_u8
318
    num_self!(u8:visit_u8);
319
    int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
320
    uint_to_self!(u16:visit_u16 u32:visit_u32 u64:visit_u64);
321
}
322
323
impl_deserialize_num! {
324
    u16, NonZeroU16, deserialize_u16
325
    num_self!(u16:visit_u16);
326
    num_as_self!(u8:visit_u8);
327
    int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
328
    uint_to_self!(u32:visit_u32 u64:visit_u64);
329
}
330
331
impl_deserialize_num! {
332
    u32, NonZeroU32, deserialize_u32
333
    num_self!(u32:visit_u32);
334
    num_as_self!(u8:visit_u8 u16:visit_u16);
335
    int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
336
    uint_to_self!(u64:visit_u64);
337
}
338
339
impl_deserialize_num! {
340
    u64, NonZeroU64, deserialize_u64
341
    num_self!(u64:visit_u64);
342
    num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32);
343
    int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
344
}
345
346
impl_deserialize_num! {
347
    usize, NonZeroUsize, deserialize_u64
348
    num_as_self!(u8:visit_u8 u16:visit_u16);
349
    int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
350
    uint_to_self!(u32:visit_u32 u64:visit_u64);
351
}
352
353
impl_deserialize_num! {
354
    f32, deserialize_f32
355
    num_self!(f32:visit_f32);
356
    num_as_self!(f64:visit_f64);
357
    num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
358
    num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
359
}
360
361
impl_deserialize_num! {
362
    f64, deserialize_f64
363
    num_self!(f64:visit_f64);
364
    num_as_self!(f32:visit_f32);
365
    num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
366
    num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
367
}
368
369
serde_if_integer128! {
370
    macro_rules! num_128 {
371
        ($ty:ident : $visit:ident) => {
372
0
            fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
373
0
            where
374
0
                E: Error,
375
0
            {
376
0
                if v as i128 >= Self::Value::min_value() as i128
377
0
                    && v as u128 <= Self::Value::max_value() as u128
378
                {
379
0
                    Ok(v as Self::Value)
380
                } else {
381
0
                    Err(Error::invalid_value(
382
0
                        Unexpected::Other(stringify!($ty)),
383
0
                        &self,
384
0
                    ))
385
                }
386
0
            }
Unexecuted instantiation: <<i128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_u128::<_>
Unexecuted instantiation: <<u128 as serde::de::Deserialize>::deserialize::PrimitiveVisitor as serde::de::Visitor>::visit_i128::<_>
387
        };
388
389
        (nonzero $primitive:ident $ty:ident : $visit:ident) => {
390
0
            fn $visit<E>(self, v: $ty) -> Result<Self::Value, E>
391
0
            where
392
0
                E: Error,
393
0
            {
394
0
                if v as i128 >= $primitive::min_value() as i128
395
0
                    && v as u128 <= $primitive::max_value() as u128
396
                {
397
0
                    if let Some(nonzero) = Self::Value::new(v as $primitive) {
398
0
                        Ok(nonzero)
399
                    } else {
400
0
                        Err(Error::invalid_value(Unexpected::Unsigned(0), &self))
401
                    }
402
                } else {
403
0
                    Err(Error::invalid_value(
404
0
                        Unexpected::Other(stringify!($ty)),
405
0
                        &self,
406
0
                    ))
407
                }
408
0
            }
Unexecuted instantiation: <<core::num::nonzero::NonZero<i128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_u128::<_>
Unexecuted instantiation: <<core::num::nonzero::NonZero<u128> as serde::de::Deserialize>::deserialize::NonZeroVisitor as serde::de::Visitor>::visit_i128::<_>
409
        };
410
    }
411
412
    impl_deserialize_num! {
413
        i128, NonZeroI128 cfg(not(no_num_nonzero_signed)), deserialize_i128
414
        num_self!(i128:visit_i128);
415
        num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
416
        num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
417
        num_128!(u128:visit_u128);
418
    }
419
420
    impl_deserialize_num! {
421
        u128, NonZeroU128, deserialize_u128
422
        num_self!(u128:visit_u128);
423
        num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
424
        int_to_uint!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
425
        num_128!(i128:visit_i128);
426
    }
427
}
428
429
////////////////////////////////////////////////////////////////////////////////
430
431
struct CharVisitor;
432
433
impl<'de> Visitor<'de> for CharVisitor {
434
    type Value = char;
435
436
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
437
0
        formatter.write_str("a character")
438
0
    }
439
440
    #[inline]
441
0
    fn visit_char<E>(self, v: char) -> Result<Self::Value, E>
442
0
    where
443
0
        E: Error,
444
0
    {
445
0
        Ok(v)
446
0
    }
447
448
    #[inline]
449
0
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
450
0
    where
451
0
        E: Error,
452
0
    {
453
0
        let mut iter = v.chars();
454
0
        match (iter.next(), iter.next()) {
455
0
            (Some(c), None) => Ok(c),
456
0
            _ => Err(Error::invalid_value(Unexpected::Str(v), &self)),
457
        }
458
0
    }
459
}
460
461
impl<'de> Deserialize<'de> for char {
462
    #[inline]
463
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
464
0
    where
465
0
        D: Deserializer<'de>,
466
0
    {
467
0
        deserializer.deserialize_char(CharVisitor)
468
0
    }
469
}
470
471
////////////////////////////////////////////////////////////////////////////////
472
473
#[cfg(any(feature = "std", feature = "alloc"))]
474
struct StringVisitor;
475
#[cfg(any(feature = "std", feature = "alloc"))]
476
struct StringInPlaceVisitor<'a>(&'a mut String);
477
478
#[cfg(any(feature = "std", feature = "alloc"))]
479
impl<'de> Visitor<'de> for StringVisitor {
480
    type Value = String;
481
482
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
483
0
        formatter.write_str("a string")
484
0
    }
485
486
0
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
487
0
    where
488
0
        E: Error,
489
0
    {
490
0
        Ok(v.to_owned())
491
0
    }
492
493
475
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
494
475
    where
495
475
        E: Error,
496
475
    {
497
475
        Ok(v)
498
475
    }
<serde::de::impls::StringVisitor as serde::de::Visitor>::visit_string::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
493
475
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
494
475
    where
495
475
        E: Error,
496
475
    {
497
475
        Ok(v)
498
475
    }
Unexecuted instantiation: <serde::de::impls::StringVisitor as serde::de::Visitor>::visit_string::<_>
499
500
0
    fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
501
0
    where
502
0
        E: Error,
503
0
    {
504
0
        match str::from_utf8(v) {
505
0
            Ok(s) => Ok(s.to_owned()),
506
0
            Err(_) => Err(Error::invalid_value(Unexpected::Bytes(v), &self)),
507
        }
508
0
    }
509
510
0
    fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
511
0
    where
512
0
        E: Error,
513
0
    {
514
0
        match String::from_utf8(v) {
515
0
            Ok(s) => Ok(s),
516
0
            Err(e) => Err(Error::invalid_value(
517
0
                Unexpected::Bytes(&e.into_bytes()),
518
0
                &self,
519
0
            )),
520
        }
521
0
    }
522
}
523
524
#[cfg(any(feature = "std", feature = "alloc"))]
525
impl<'a, 'de> Visitor<'de> for StringInPlaceVisitor<'a> {
526
    type Value = ();
527
528
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
529
0
        formatter.write_str("a string")
530
0
    }
531
532
0
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
533
0
    where
534
0
        E: Error,
535
0
    {
536
0
        self.0.clear();
537
0
        self.0.push_str(v);
538
0
        Ok(())
539
0
    }
540
541
0
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
542
0
    where
543
0
        E: Error,
544
0
    {
545
0
        *self.0 = v;
546
0
        Ok(())
547
0
    }
548
549
0
    fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
550
0
    where
551
0
        E: Error,
552
0
    {
553
0
        match str::from_utf8(v) {
554
0
            Ok(s) => {
555
0
                self.0.clear();
556
0
                self.0.push_str(s);
557
0
                Ok(())
558
            }
559
0
            Err(_) => Err(Error::invalid_value(Unexpected::Bytes(v), &self)),
560
        }
561
0
    }
562
563
0
    fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
564
0
    where
565
0
        E: Error,
566
0
    {
567
0
        match String::from_utf8(v) {
568
0
            Ok(s) => {
569
0
                *self.0 = s;
570
0
                Ok(())
571
            }
572
0
            Err(e) => Err(Error::invalid_value(
573
0
                Unexpected::Bytes(&e.into_bytes()),
574
0
                &self,
575
0
            )),
576
        }
577
0
    }
578
}
579
580
#[cfg(any(feature = "std", feature = "alloc"))]
581
impl<'de> Deserialize<'de> for String {
582
541
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
583
541
    where
584
541
        D: Deserializer<'de>,
585
541
    {
586
541
        deserializer.deserialize_string(StringVisitor)
587
541
    }
<alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
582
541
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
583
541
    where
584
541
        D: Deserializer<'de>,
585
541
    {
586
541
        deserializer.deserialize_string(StringVisitor)
587
541
    }
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::string::String as serde::de::Deserialize>::deserialize::<_>
588
589
0
    fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
590
0
    where
591
0
        D: Deserializer<'de>,
592
0
    {
593
0
        deserializer.deserialize_string(StringInPlaceVisitor(place))
594
0
    }
595
}
596
597
////////////////////////////////////////////////////////////////////////////////
598
599
struct StrVisitor;
600
601
impl<'a> Visitor<'a> for StrVisitor {
602
    type Value = &'a str;
603
604
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
605
0
        formatter.write_str("a borrowed string")
606
0
    }
607
608
0
    fn visit_borrowed_str<E>(self, v: &'a str) -> Result<Self::Value, E>
609
0
    where
610
0
        E: Error,
611
0
    {
612
0
        Ok(v) // so easy
613
0
    }
614
615
0
    fn visit_borrowed_bytes<E>(self, v: &'a [u8]) -> Result<Self::Value, E>
616
0
    where
617
0
        E: Error,
618
0
    {
619
0
        str::from_utf8(v).map_err(|_| Error::invalid_value(Unexpected::Bytes(v), &self))
620
0
    }
621
}
622
623
impl<'de: 'a, 'a> Deserialize<'de> for &'a str {
624
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
625
0
    where
626
0
        D: Deserializer<'de>,
627
0
    {
628
0
        deserializer.deserialize_str(StrVisitor)
629
0
    }
630
}
631
632
////////////////////////////////////////////////////////////////////////////////
633
634
struct BytesVisitor;
635
636
impl<'a> Visitor<'a> for BytesVisitor {
637
    type Value = &'a [u8];
638
639
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
640
0
        formatter.write_str("a borrowed byte array")
641
0
    }
642
643
0
    fn visit_borrowed_bytes<E>(self, v: &'a [u8]) -> Result<Self::Value, E>
644
0
    where
645
0
        E: Error,
646
0
    {
647
0
        Ok(v)
648
0
    }
649
650
0
    fn visit_borrowed_str<E>(self, v: &'a str) -> Result<Self::Value, E>
651
0
    where
652
0
        E: Error,
653
0
    {
654
0
        Ok(v.as_bytes())
655
0
    }
656
}
657
658
impl<'de: 'a, 'a> Deserialize<'de> for &'a [u8] {
659
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
660
0
    where
661
0
        D: Deserializer<'de>,
662
0
    {
663
0
        deserializer.deserialize_bytes(BytesVisitor)
664
0
    }
665
}
666
667
////////////////////////////////////////////////////////////////////////////////
668
669
#[cfg(feature = "std")]
670
struct CStringVisitor;
671
672
#[cfg(feature = "std")]
673
impl<'de> Visitor<'de> for CStringVisitor {
674
    type Value = CString;
675
676
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
677
0
        formatter.write_str("byte array")
678
0
    }
679
680
0
    fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
681
0
    where
682
0
        A: SeqAccess<'de>,
683
0
    {
684
0
        let len = size_hint::cautious(seq.size_hint());
685
0
        let mut values = Vec::with_capacity(len);
686
687
0
        while let Some(value) = try!(seq.next_element()) {
688
0
            values.push(value);
689
0
        }
690
691
0
        CString::new(values).map_err(Error::custom)
692
0
    }
693
694
0
    fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
695
0
    where
696
0
        E: Error,
697
0
    {
698
0
        CString::new(v).map_err(Error::custom)
699
0
    }
700
701
1.06k
    fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
702
1.06k
    where
703
1.06k
        E: Error,
704
1.06k
    {
705
1.06k
        CString::new(v).map_err(Error::custom)
706
1.06k
    }
<serde::de::impls::CStringVisitor as serde::de::Visitor>::visit_byte_buf::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
701
1.06k
    fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
702
1.06k
    where
703
1.06k
        E: Error,
704
1.06k
    {
705
1.06k
        CString::new(v).map_err(Error::custom)
706
1.06k
    }
Unexecuted instantiation: <serde::de::impls::CStringVisitor as serde::de::Visitor>::visit_byte_buf::<_>
707
708
0
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
709
0
    where
710
0
        E: Error,
711
0
    {
712
0
        CString::new(v).map_err(Error::custom)
713
0
    }
714
715
0
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
716
0
    where
717
0
        E: Error,
718
0
    {
719
0
        CString::new(v).map_err(Error::custom)
720
0
    }
721
}
722
723
#[cfg(feature = "std")]
724
impl<'de> Deserialize<'de> for CString {
725
1.14k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
726
1.14k
    where
727
1.14k
        D: Deserializer<'de>,
728
1.14k
    {
729
1.14k
        deserializer.deserialize_byte_buf(CStringVisitor)
730
1.14k
    }
<alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
725
1.14k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
726
1.14k
    where
727
1.14k
        D: Deserializer<'de>,
728
1.14k
    {
729
1.14k
        deserializer.deserialize_byte_buf(CStringVisitor)
730
1.14k
    }
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::ffi::c_str::CString as serde::de::Deserialize>::deserialize::<_>
731
}
732
733
macro_rules! forwarded_impl {
734
    (
735
        $(#[doc = $doc:tt])*
736
        ( $($id: ident),* ), $ty: ty, $func: expr
737
    ) => {
738
        $(#[doc = $doc])*
739
        impl<'de $(, $id : Deserialize<'de>,)*> Deserialize<'de> for $ty {
740
7.40k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
741
7.40k
            where
742
7.40k
                D: Deserializer<'de>,
743
7.40k
            {
744
7.40k
                Deserialize::deserialize(deserializer).map($func)
745
7.40k
            }
<alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
740
6.80k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
741
6.80k
            where
742
6.80k
                D: Deserializer<'de>,
743
6.80k
            {
744
6.80k
                Deserialize::deserialize(deserializer).map($func)
745
6.80k
            }
Unexecuted instantiation: <alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
740
597
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
741
597
            where
742
597
                D: Deserializer<'de>,
743
597
            {
744
597
                Deserialize::deserialize(deserializer).map($func)
745
597
            }
Unexecuted instantiation: <alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::boxed::Box<[u8]> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::cmp::Reverse<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::boxed::Box<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::boxed::Box<[_]> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::cell::RefCell<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <std::sync::poison::mutex::Mutex<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <std::sync::poison::rwlock::RwLock<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::boxed::Box<core::ffi::c_str::CStr> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::boxed::Box<std::path::Path> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::boxed::Box<str> as serde::de::Deserialize>::deserialize::<_>
746
        }
747
    }
748
}
749
750
#[cfg(all(feature = "std", not(no_de_boxed_c_str)))]
751
forwarded_impl!((), Box<CStr>, CString::into_boxed_c_str);
752
753
#[cfg(not(no_core_reverse))]
754
forwarded_impl!((T), Reverse<T>, Reverse);
755
756
////////////////////////////////////////////////////////////////////////////////
757
758
struct OptionVisitor<T> {
759
    marker: PhantomData<T>,
760
}
761
762
impl<'de, T> Visitor<'de> for OptionVisitor<T>
763
where
764
    T: Deserialize<'de>,
765
{
766
    type Value = Option<T>;
767
768
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
769
0
        formatter.write_str("option")
770
0
    }
771
772
    #[inline]
773
0
    fn visit_unit<E>(self) -> Result<Self::Value, E>
774
0
    where
775
0
        E: Error,
776
0
    {
777
0
        Ok(None)
778
0
    }
779
780
    #[inline]
781
0
    fn visit_none<E>(self) -> Result<Self::Value, E>
782
0
    where
783
0
        E: Error,
784
0
    {
785
0
        Ok(None)
786
0
    }
787
788
    #[inline]
789
0
    fn visit_some<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
790
0
    where
791
0
        D: Deserializer<'de>,
792
0
    {
793
0
        T::deserialize(deserializer).map(Some)
794
0
    }
795
796
    #[doc(hidden)]
797
0
    fn __private_visit_untagged_option<D>(self, deserializer: D) -> Result<Self::Value, ()>
798
0
    where
799
0
        D: Deserializer<'de>,
800
0
    {
801
0
        Ok(T::deserialize(deserializer).ok())
802
0
    }
803
}
804
805
impl<'de, T> Deserialize<'de> for Option<T>
806
where
807
    T: Deserialize<'de>,
808
{
809
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
810
0
    where
811
0
        D: Deserializer<'de>,
812
0
    {
813
0
        deserializer.deserialize_option(OptionVisitor {
814
0
            marker: PhantomData,
815
0
        })
816
0
    }
817
818
    // The Some variant's repr is opaque, so we can't play cute tricks with its
819
    // tag to have deserialize_in_place build the content in place unconditionally.
820
    //
821
    // FIXME: investigate whether branching on the old value being Some to
822
    // deserialize_in_place the value is profitable (probably data-dependent?)
823
}
824
825
////////////////////////////////////////////////////////////////////////////////
826
827
struct PhantomDataVisitor<T: ?Sized> {
828
    marker: PhantomData<T>,
829
}
830
831
impl<'de, T: ?Sized> Visitor<'de> for PhantomDataVisitor<T> {
832
    type Value = PhantomData<T>;
833
834
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
835
0
        formatter.write_str("unit")
836
0
    }
837
838
    #[inline]
839
0
    fn visit_unit<E>(self) -> Result<Self::Value, E>
840
0
    where
841
0
        E: Error,
842
0
    {
843
0
        Ok(PhantomData)
844
0
    }
845
}
846
847
impl<'de, T: ?Sized> Deserialize<'de> for PhantomData<T> {
848
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
849
0
    where
850
0
        D: Deserializer<'de>,
851
0
    {
852
0
        let visitor = PhantomDataVisitor {
853
0
            marker: PhantomData,
854
0
        };
855
0
        deserializer.deserialize_unit_struct("PhantomData", visitor)
856
0
    }
857
}
858
859
////////////////////////////////////////////////////////////////////////////////
860
861
#[cfg(any(feature = "std", feature = "alloc"))]
862
macro_rules! seq_impl {
863
    (
864
        $ty:ident < T $(: $tbound1:ident $(+ $tbound2:ident)*)* $(, $typaram:ident : $bound1:ident $(+ $bound2:ident)*)* >,
865
        $access:ident,
866
        $clear:expr,
867
        $with_capacity:expr,
868
        $reserve:expr,
869
        $insert:expr
870
    ) => {
871
        impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
872
        where
873
            T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
874
            $($typaram: $bound1 $(+ $bound2)*,)*
875
        {
876
7.04k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
877
7.04k
            where
878
7.04k
                D: Deserializer<'de>,
879
7.04k
            {
880
                struct SeqVisitor<T $(, $typaram)*> {
881
                    marker: PhantomData<$ty<T $(, $typaram)*>>,
882
                }
883
884
                impl<'de, T $(, $typaram)*> Visitor<'de> for SeqVisitor<T $(, $typaram)*>
885
                where
886
                    T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
887
                    $($typaram: $bound1 $(+ $bound2)*,)*
888
                {
889
                    type Value = $ty<T $(, $typaram)*>;
890
891
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
892
0
                        formatter.write_str("a sequence")
893
0
                    }
Unexecuted instantiation: <<alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize::SeqVisitor<_, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::expecting
894
895
                    #[inline]
896
6.98k
                    fn visit_seq<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
897
6.98k
                    where
898
6.98k
                        A: SeqAccess<'de>,
899
6.98k
                    {
900
6.98k
                        let mut values = $with_capacity;
901
902
33.0k
                        while let Some(value) = try!($access.next_element()) {
903
26.0k
                            $insert(&mut values, value);
904
26.0k
                        }
905
906
2.32k
                        Ok(values)
907
6.98k
                    }
<<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
896
4.99k
                    fn visit_seq<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
897
4.99k
                    where
898
4.99k
                        A: SeqAccess<'de>,
899
4.99k
                    {
900
4.99k
                        let mut values = $with_capacity;
901
902
27.7k
                        while let Some(value) = try!($access.next_element()) {
903
22.7k
                            $insert(&mut values, value);
904
22.7k
                        }
905
906
1.33k
                        Ok(values)
907
4.99k
                    }
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
896
1.98k
                    fn visit_seq<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
897
1.98k
                    where
898
1.98k
                        A: SeqAccess<'de>,
899
1.98k
                    {
900
1.98k
                        let mut values = $with_capacity;
901
902
5.24k
                        while let Some(value) = try!($access.next_element()) {
903
3.25k
                            $insert(&mut values, value);
904
3.25k
                        }
905
906
999
                        Ok(values)
907
1.98k
                    }
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<compat::AllTypes> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize::SeqVisitor<_, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::SeqVisitor<_> as serde::de::Visitor>::visit_seq::<_>
908
                }
909
910
7.04k
                let visitor = SeqVisitor { marker: PhantomData };
911
7.04k
                deserializer.deserialize_seq(visitor)
912
7.04k
            }
<alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
876
2.01k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
877
2.01k
            where
878
2.01k
                D: Deserializer<'de>,
879
2.01k
            {
880
                struct SeqVisitor<T $(, $typaram)*> {
881
                    marker: PhantomData<$ty<T $(, $typaram)*>>,
882
                }
883
884
                impl<'de, T $(, $typaram)*> Visitor<'de> for SeqVisitor<T $(, $typaram)*>
885
                where
886
                    T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
887
                    $($typaram: $bound1 $(+ $bound2)*,)*
888
                {
889
                    type Value = $ty<T $(, $typaram)*>;
890
891
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
892
                        formatter.write_str("a sequence")
893
                    }
894
895
                    #[inline]
896
                    fn visit_seq<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
897
                    where
898
                        A: SeqAccess<'de>,
899
                    {
900
                        let mut values = $with_capacity;
901
902
                        while let Some(value) = try!($access.next_element()) {
903
                            $insert(&mut values, value);
904
                        }
905
906
                        Ok(values)
907
                    }
908
                }
909
910
2.01k
                let visitor = SeqVisitor { marker: PhantomData };
911
2.01k
                deserializer.deserialize_seq(visitor)
912
2.01k
            }
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
876
5.02k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
877
5.02k
            where
878
5.02k
                D: Deserializer<'de>,
879
5.02k
            {
880
                struct SeqVisitor<T $(, $typaram)*> {
881
                    marker: PhantomData<$ty<T $(, $typaram)*>>,
882
                }
883
884
                impl<'de, T $(, $typaram)*> Visitor<'de> for SeqVisitor<T $(, $typaram)*>
885
                where
886
                    T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
887
                    $($typaram: $bound1 $(+ $bound2)*,)*
888
                {
889
                    type Value = $ty<T $(, $typaram)*>;
890
891
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
892
                        formatter.write_str("a sequence")
893
                    }
894
895
                    #[inline]
896
                    fn visit_seq<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
897
                    where
898
                        A: SeqAccess<'de>,
899
                    {
900
                        let mut values = $with_capacity;
901
902
                        while let Some(value) = try!($access.next_element()) {
903
                            $insert(&mut values, value);
904
                        }
905
906
                        Ok(values)
907
                    }
908
                }
909
910
5.02k
                let visitor = SeqVisitor { marker: PhantomData };
911
5.02k
                deserializer.deserialize_seq(visitor)
912
5.02k
            }
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize::<_>
913
914
0
            fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
915
0
            where
916
0
                D: Deserializer<'de>,
917
0
            {
918
                struct SeqInPlaceVisitor<'a, T: 'a $(, $typaram: 'a)*>(&'a mut $ty<T $(, $typaram)*>);
919
920
                impl<'a, 'de, T $(, $typaram)*> Visitor<'de> for SeqInPlaceVisitor<'a, T $(, $typaram)*>
921
                where
922
                    T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
923
                    $($typaram: $bound1 $(+ $bound2)*,)*
924
                {
925
                    type Value = ();
926
927
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
928
0
                        formatter.write_str("a sequence")
929
0
                    }
Unexecuted instantiation: <<alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::expecting
930
931
                    #[inline]
932
0
                    fn visit_seq<A>(mut self, mut $access: A) -> Result<Self::Value, A::Error>
933
0
                    where
934
0
                        A: SeqAccess<'de>,
935
0
                    {
936
0
                        $clear(&mut self.0);
937
0
                        $reserve(&mut self.0, size_hint::cautious($access.size_hint()));
938
939
                        // FIXME: try to overwrite old values here? (Vec, VecDeque, LinkedList)
940
0
                        while let Some(value) = try!($access.next_element()) {
941
0
                            $insert(&mut self.0, value);
942
0
                        }
943
944
0
                        Ok(())
945
0
                    }
Unexecuted instantiation: <<alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize_in_place::SeqInPlaceVisitor<_> as serde::de::Visitor>::visit_seq::<_>
946
                }
947
948
0
                deserializer.deserialize_seq(SeqInPlaceVisitor(place))
949
0
            }
Unexecuted instantiation: <alloc::collections::binary_heap::BinaryHeap<_> as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <alloc::collections::btree::set::BTreeSet<_> as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <alloc::collections::linked_list::LinkedList<_> as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <std::collections::hash::set::HashSet<_, _> as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <alloc::collections::vec_deque::VecDeque<_> as serde::de::Deserialize>::deserialize_in_place::<_>
950
        }
951
    }
952
}
953
954
// Dummy impl of reserve
955
#[cfg(any(feature = "std", feature = "alloc"))]
956
0
fn nop_reserve<T>(_seq: T, _n: usize) {}
957
958
#[cfg(any(feature = "std", feature = "alloc"))]
959
seq_impl!(
960
    BinaryHeap<T: Ord>,
961
    seq,
962
    BinaryHeap::clear,
963
    BinaryHeap::with_capacity(size_hint::cautious(seq.size_hint())),
964
    BinaryHeap::reserve,
965
    BinaryHeap::push
966
);
967
968
#[cfg(any(feature = "std", feature = "alloc"))]
969
seq_impl!(
970
    BTreeSet<T: Eq + Ord>,
971
    seq,
972
    BTreeSet::clear,
973
    BTreeSet::new(),
974
    nop_reserve,
975
    BTreeSet::insert
976
);
977
978
#[cfg(any(feature = "std", feature = "alloc"))]
979
seq_impl!(
980
    LinkedList<T>,
981
    seq,
982
    LinkedList::clear,
983
    LinkedList::new(),
984
    nop_reserve,
985
    LinkedList::push_back
986
);
987
988
#[cfg(feature = "std")]
989
seq_impl!(
990
    HashSet<T: Eq + Hash, S: BuildHasher + Default>,
991
    seq,
992
    HashSet::clear,
993
    HashSet::with_capacity_and_hasher(size_hint::cautious(seq.size_hint()), S::default()),
994
    HashSet::reserve,
995
    HashSet::insert);
996
997
#[cfg(any(feature = "std", feature = "alloc"))]
998
seq_impl!(
999
    VecDeque<T>,
1000
    seq,
1001
    VecDeque::clear,
1002
    VecDeque::with_capacity(size_hint::cautious(seq.size_hint())),
1003
    VecDeque::reserve,
1004
    VecDeque::push_back
1005
);
1006
1007
////////////////////////////////////////////////////////////////////////////////
1008
1009
#[cfg(any(feature = "std", feature = "alloc"))]
1010
impl<'de, T> Deserialize<'de> for Vec<T>
1011
where
1012
    T: Deserialize<'de>,
1013
{
1014
948
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1015
948
    where
1016
948
        D: Deserializer<'de>,
1017
948
    {
1018
        struct VecVisitor<T> {
1019
            marker: PhantomData<T>,
1020
        }
1021
1022
        impl<'de, T> Visitor<'de> for VecVisitor<T>
1023
        where
1024
            T: Deserialize<'de>,
1025
        {
1026
            type Value = Vec<T>;
1027
1028
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1029
0
                formatter.write_str("a sequence")
1030
0
            }
1031
1032
906
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1033
906
            where
1034
906
                A: SeqAccess<'de>,
1035
906
            {
1036
906
                let mut values = Vec::with_capacity(size_hint::cautious(seq.size_hint()));
1037
1038
15.2k
                while let Some(value) = try!(seq.next_element()) {
1039
14.3k
                    values.push(value);
1040
14.3k
                }
1041
1042
839
                Ok(values)
1043
906
            }
<<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1032
906
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1033
906
            where
1034
906
                A: SeqAccess<'de>,
1035
906
            {
1036
906
                let mut values = Vec::with_capacity(size_hint::cautious(seq.size_hint()));
1037
1038
15.2k
                while let Some(value) = try!(seq.next_element()) {
1039
14.3k
                    values.push(value);
1040
14.3k
                }
1041
1042
839
                Ok(values)
1043
906
            }
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<u8> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::VecVisitor<_> as serde::de::Visitor>::visit_seq::<_>
1044
        }
1045
1046
948
        let visitor = VecVisitor {
1047
948
            marker: PhantomData,
1048
948
        };
1049
948
        deserializer.deserialize_seq(visitor)
1050
948
    }
<alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1014
948
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1015
948
    where
1016
948
        D: Deserializer<'de>,
1017
948
    {
1018
        struct VecVisitor<T> {
1019
            marker: PhantomData<T>,
1020
        }
1021
1022
        impl<'de, T> Visitor<'de> for VecVisitor<T>
1023
        where
1024
            T: Deserialize<'de>,
1025
        {
1026
            type Value = Vec<T>;
1027
1028
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1029
                formatter.write_str("a sequence")
1030
            }
1031
1032
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1033
            where
1034
                A: SeqAccess<'de>,
1035
            {
1036
                let mut values = Vec::with_capacity(size_hint::cautious(seq.size_hint()));
1037
1038
                while let Some(value) = try!(seq.next_element()) {
1039
                    values.push(value);
1040
                }
1041
1042
                Ok(values)
1043
            }
1044
        }
1045
1046
948
        let visitor = VecVisitor {
1047
948
            marker: PhantomData,
1048
948
        };
1049
948
        deserializer.deserialize_seq(visitor)
1050
948
    }
Unexecuted instantiation: <alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::vec::Vec<u8> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::vec::Vec<_> as serde::de::Deserialize>::deserialize::<_>
1051
1052
0
    fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
1053
0
    where
1054
0
        D: Deserializer<'de>,
1055
0
    {
1056
        struct VecInPlaceVisitor<'a, T: 'a>(&'a mut Vec<T>);
1057
1058
        impl<'a, 'de, T> Visitor<'de> for VecInPlaceVisitor<'a, T>
1059
        where
1060
            T: Deserialize<'de>,
1061
        {
1062
            type Value = ();
1063
1064
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1065
0
                formatter.write_str("a sequence")
1066
0
            }
1067
1068
0
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1069
0
            where
1070
0
                A: SeqAccess<'de>,
1071
0
            {
1072
0
                let hint = size_hint::cautious(seq.size_hint());
1073
0
                if let Some(additional) = hint.checked_sub(self.0.len()) {
1074
0
                    self.0.reserve(additional);
1075
0
                }
1076
1077
0
                for i in 0..self.0.len() {
1078
0
                    let next = {
1079
0
                        let next_place = InPlaceSeed(&mut self.0[i]);
1080
0
                        try!(seq.next_element_seed(next_place))
1081
                    };
1082
0
                    if next.is_none() {
1083
0
                        self.0.truncate(i);
1084
0
                        return Ok(());
1085
0
                    }
1086
                }
1087
1088
0
                while let Some(value) = try!(seq.next_element()) {
1089
0
                    self.0.push(value);
1090
0
                }
1091
1092
0
                Ok(())
1093
0
            }
1094
        }
1095
1096
0
        deserializer.deserialize_seq(VecInPlaceVisitor(place))
1097
0
    }
1098
}
1099
1100
////////////////////////////////////////////////////////////////////////////////
1101
1102
struct ArrayVisitor<A> {
1103
    marker: PhantomData<A>,
1104
}
1105
struct ArrayInPlaceVisitor<'a, A: 'a>(&'a mut A);
1106
1107
impl<A> ArrayVisitor<A> {
1108
4.74k
    fn new() -> Self {
1109
4.74k
        ArrayVisitor {
1110
4.74k
            marker: PhantomData,
1111
4.74k
        }
1112
4.74k
    }
<serde::de::impls::ArrayVisitor<[u8; 16]>>::new
Line
Count
Source
1108
2.77k
    fn new() -> Self {
1109
2.77k
        ArrayVisitor {
1110
2.77k
            marker: PhantomData,
1111
2.77k
        }
1112
2.77k
    }
<serde::de::impls::ArrayVisitor<[u8; 4]>>::new
Line
Count
Source
1108
1.96k
    fn new() -> Self {
1109
1.96k
        ArrayVisitor {
1110
1.96k
            marker: PhantomData,
1111
1.96k
        }
1112
1.96k
    }
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<_>>::new
1113
}
1114
1115
impl<'de, T> Visitor<'de> for ArrayVisitor<[T; 0]> {
1116
    type Value = [T; 0];
1117
1118
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1119
0
        formatter.write_str("an empty array")
1120
0
    }
1121
1122
    #[inline]
1123
0
    fn visit_seq<A>(self, _: A) -> Result<Self::Value, A::Error>
1124
0
    where
1125
0
        A: SeqAccess<'de>,
1126
0
    {
1127
0
        Ok([])
1128
0
    }
1129
}
1130
1131
// Does not require T: Deserialize<'de>.
1132
impl<'de, T> Deserialize<'de> for [T; 0] {
1133
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1134
0
    where
1135
0
        D: Deserializer<'de>,
1136
0
    {
1137
0
        deserializer.deserialize_tuple(0, ArrayVisitor::<[T; 0]>::new())
1138
0
    }
1139
}
1140
1141
macro_rules! array_impls {
1142
    ($($len:expr => ($($n:tt)+))+) => {
1143
        $(
1144
            impl<'de, T> Visitor<'de> for ArrayVisitor<[T; $len]>
1145
            where
1146
                T: Deserialize<'de>,
1147
            {
1148
                type Value = [T; $len];
1149
1150
0
                fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1151
0
                    formatter.write_str(concat!("an array of length ", $len))
1152
0
                }
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 10]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 11]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 12]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 13]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 14]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 15]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 16]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 17]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 1]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 2]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 3]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 4]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 5]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 6]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 7]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 8]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 9]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 18]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 19]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 20]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 21]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 30]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 31]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 32]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 22]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 23]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 24]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 25]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 26]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 27]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 28]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 29]> as serde::de::Visitor>::expecting
1153
1154
                #[inline]
1155
4.74k
                fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1156
4.74k
                where
1157
4.74k
                    A: SeqAccess<'de>,
1158
4.74k
                {
1159
                    Ok([$(
1160
4.64k
                        match try!(seq.next_element()) {
1161
4.63k
                            Some(val) => val,
1162
0
                            None => return Err(Error::invalid_length($n, &self)),
1163
                        }
1164
                    ),+])
1165
4.74k
                }
<serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1155
2.77k
                fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1156
2.77k
                where
1157
2.77k
                    A: SeqAccess<'de>,
1158
2.77k
                {
1159
                    Ok([$(
1160
2.70k
                        match try!(seq.next_element()) {
1161
2.70k
                            Some(val) => val,
1162
0
                            None => return Err(Error::invalid_length($n, &self)),
1163
                        }
1164
                    ),+])
1165
2.77k
                }
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 16]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1155
1.96k
                fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1156
1.96k
                where
1157
1.96k
                    A: SeqAccess<'de>,
1158
1.96k
                {
1159
                    Ok([$(
1160
1.94k
                        match try!(seq.next_element()) {
1161
1.93k
                            Some(val) => val,
1162
0
                            None => return Err(Error::invalid_length($n, &self)),
1163
                        }
1164
                    ),+])
1165
1.96k
                }
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[u8; 4]> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 10]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 11]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 12]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 13]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 14]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 15]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 16]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 17]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 1]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 2]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 3]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 4]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 5]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 6]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 7]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 8]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 9]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 18]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 19]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 20]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 21]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 30]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 31]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 32]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 22]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 23]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 24]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 25]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 26]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 27]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 28]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayVisitor<[_; 29]> as serde::de::Visitor>::visit_seq::<_>
1166
            }
1167
1168
            impl<'a, 'de, T> Visitor<'de> for ArrayInPlaceVisitor<'a, [T; $len]>
1169
            where
1170
                T: Deserialize<'de>,
1171
            {
1172
                type Value = ();
1173
1174
0
                fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1175
0
                    formatter.write_str(concat!("an array of length ", $len))
1176
0
                }
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 9]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 10]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 11]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 12]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 13]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 14]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 15]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 16]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 17]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 1]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 2]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 3]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 4]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 5]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 6]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 7]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 8]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 18]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 19]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 20]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 30]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 31]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 32]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 21]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 22]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 23]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 24]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 25]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 26]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 27]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 28]> as serde::de::Visitor>::expecting
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 29]> as serde::de::Visitor>::expecting
1177
1178
                #[inline]
1179
0
                fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1180
0
                where
1181
0
                    A: SeqAccess<'de>,
1182
0
                {
1183
0
                    let mut fail_idx = None;
1184
0
                    for (idx, dest) in self.0[..].iter_mut().enumerate() {
1185
0
                        if try!(seq.next_element_seed(InPlaceSeed(dest))).is_none() {
1186
0
                            fail_idx = Some(idx);
1187
0
                            break;
1188
0
                        }
1189
                    }
1190
0
                    if let Some(idx) = fail_idx {
1191
0
                        return Err(Error::invalid_length(idx, &self));
1192
0
                    }
1193
0
                    Ok(())
1194
0
                }
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 9]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 10]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 11]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 12]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 13]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 14]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 15]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 16]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 17]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 1]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 2]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 3]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 4]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 5]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 6]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 7]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 8]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 18]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 19]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 20]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 30]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 31]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 32]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 21]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 22]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 23]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 24]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 25]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 26]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 27]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 28]> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <serde::de::impls::ArrayInPlaceVisitor<[_; 29]> as serde::de::Visitor>::visit_seq::<_>
1195
            }
1196
1197
            impl<'de, T> Deserialize<'de> for [T; $len]
1198
            where
1199
                T: Deserialize<'de>,
1200
            {
1201
4.74k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1202
4.74k
                where
1203
4.74k
                    D: Deserializer<'de>,
1204
4.74k
                {
1205
4.74k
                    deserializer.deserialize_tuple($len, ArrayVisitor::<[T; $len]>::new())
1206
4.74k
                }
<[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1201
2.77k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1202
2.77k
                where
1203
2.77k
                    D: Deserializer<'de>,
1204
2.77k
                {
1205
2.77k
                    deserializer.deserialize_tuple($len, ArrayVisitor::<[T; $len]>::new())
1206
2.77k
                }
Unexecuted instantiation: <[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <[u8; 16] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1201
1.96k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1202
1.96k
                where
1203
1.96k
                    D: Deserializer<'de>,
1204
1.96k
                {
1205
1.96k
                    deserializer.deserialize_tuple($len, ArrayVisitor::<[T; $len]>::new())
1206
1.96k
                }
Unexecuted instantiation: <[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <[u8; 4] as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <[_; 9] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 10] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 11] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 12] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 13] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 14] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 15] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 16] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 17] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 1] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 2] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 3] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 4] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 5] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 6] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 7] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 8] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 18] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 19] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 20] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 30] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 31] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 32] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 21] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 22] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 23] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 24] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 25] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 26] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 27] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 28] as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <[_; 29] as serde::de::Deserialize>::deserialize::<_>
1207
1208
0
                fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
1209
0
                where
1210
0
                    D: Deserializer<'de>,
1211
0
                {
1212
0
                    deserializer.deserialize_tuple($len, ArrayInPlaceVisitor(place))
1213
0
                }
Unexecuted instantiation: <[_; 9] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 10] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 11] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 12] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 13] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 14] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 15] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 16] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 17] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 1] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 2] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 3] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 4] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 5] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 6] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 7] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 8] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 18] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 19] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 20] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 30] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 31] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 32] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 21] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 22] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 23] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 24] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 25] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 26] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 27] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 28] as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <[_; 29] as serde::de::Deserialize>::deserialize_in_place::<_>
1214
            }
1215
        )+
1216
    }
1217
}
1218
1219
array_impls! {
1220
    1 => (0)
1221
    2 => (0 1)
1222
    3 => (0 1 2)
1223
    4 => (0 1 2 3)
1224
    5 => (0 1 2 3 4)
1225
    6 => (0 1 2 3 4 5)
1226
    7 => (0 1 2 3 4 5 6)
1227
    8 => (0 1 2 3 4 5 6 7)
1228
    9 => (0 1 2 3 4 5 6 7 8)
1229
    10 => (0 1 2 3 4 5 6 7 8 9)
1230
    11 => (0 1 2 3 4 5 6 7 8 9 10)
1231
    12 => (0 1 2 3 4 5 6 7 8 9 10 11)
1232
    13 => (0 1 2 3 4 5 6 7 8 9 10 11 12)
1233
    14 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13)
1234
    15 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
1235
    16 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
1236
    17 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
1237
    18 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17)
1238
    19 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)
1239
    20 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)
1240
    21 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)
1241
    22 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21)
1242
    23 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22)
1243
    24 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
1244
    25 => (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24)
1245
    26 => (0 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)
1246
    27 => (0 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)
1247
    28 => (0 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)
1248
    29 => (0 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)
1249
    30 => (0 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)
1250
    31 => (0 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)
1251
    32 => (0 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)
1252
}
1253
1254
////////////////////////////////////////////////////////////////////////////////
1255
1256
macro_rules! tuple_impls {
1257
    ($($len:tt => ($($n:tt $name:ident)+))+) => {
1258
        $(
1259
            impl<'de, $($name: Deserialize<'de>),+> Deserialize<'de> for ($($name,)+) {
1260
                #[inline]
1261
2.56k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1262
2.56k
                where
1263
2.56k
                    D: Deserializer<'de>,
1264
2.56k
                {
1265
                    struct TupleVisitor<$($name,)+> {
1266
                        marker: PhantomData<($($name,)+)>,
1267
                    }
1268
1269
                    impl<'de, $($name: Deserialize<'de>),+> Visitor<'de> for TupleVisitor<$($name,)+> {
1270
                        type Value = ($($name,)+);
1271
1272
0
                        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1273
0
                            formatter.write_str(concat!("a tuple of size ", $len))
1274
0
                        }
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_,) as serde::de::Deserialize>::deserialize::TupleVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
1275
1276
                        #[inline]
1277
                        #[allow(non_snake_case)]
1278
2.56k
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1279
2.56k
                        where
1280
2.56k
                            A: SeqAccess<'de>,
1281
2.56k
                        {
1282
                            $(
1283
2.50k
                                let $name = match try!(seq.next_element()) {
1284
2.42k
                                    Some(value) => value,
1285
0
                                    None => return Err(Error::invalid_length($n, &self)),
1286
                                };
1287
                            )+
1288
1289
2.42k
                            Ok(($($name,)+))
1290
2.56k
                        }
<<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1278
1.10k
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1279
1.10k
                        where
1280
1.10k
                            A: SeqAccess<'de>,
1281
1.10k
                        {
1282
                            $(
1283
1.08k
                                let $name = match try!(seq.next_element()) {
1284
1.04k
                                    Some(value) => value,
1285
0
                                    None => return Err(Error::invalid_length($n, &self)),
1286
                                };
1287
                            )+
1288
1289
1.04k
                            Ok(($($name,)+))
1290
1.10k
                        }
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv4Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1278
1.46k
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1279
1.46k
                        where
1280
1.46k
                            A: SeqAccess<'de>,
1281
1.46k
                        {
1282
                            $(
1283
1.42k
                                let $name = match try!(seq.next_element()) {
1284
1.37k
                                    Some(value) => value,
1285
0
                                    None => return Err(Error::invalid_length($n, &self)),
1286
                                };
1287
                            )+
1288
1289
1.37k
                            Ok(($($name,)+))
1290
1.46k
                        }
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<core::net::ip_addr::Ipv6Addr, u16> as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<(_,) as serde::de::Deserialize>::deserialize::TupleVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::TupleVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
1291
                    }
1292
1293
2.56k
                    deserializer.deserialize_tuple($len, TupleVisitor { marker: PhantomData })
1294
2.56k
                }
<(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1261
1.10k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1262
1.10k
                where
1263
1.10k
                    D: Deserializer<'de>,
1264
1.10k
                {
1265
                    struct TupleVisitor<$($name,)+> {
1266
                        marker: PhantomData<($($name,)+)>,
1267
                    }
1268
1269
                    impl<'de, $($name: Deserialize<'de>),+> Visitor<'de> for TupleVisitor<$($name,)+> {
1270
                        type Value = ($($name,)+);
1271
1272
                        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1273
                            formatter.write_str(concat!("a tuple of size ", $len))
1274
                        }
1275
1276
                        #[inline]
1277
                        #[allow(non_snake_case)]
1278
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1279
                        where
1280
                            A: SeqAccess<'de>,
1281
                        {
1282
                            $(
1283
                                let $name = match try!(seq.next_element()) {
1284
                                    Some(value) => value,
1285
                                    None => return Err(Error::invalid_length($n, &self)),
1286
                                };
1287
                            )+
1288
1289
                            Ok(($($name,)+))
1290
                        }
1291
                    }
1292
1293
1.10k
                    deserializer.deserialize_tuple($len, TupleVisitor { marker: PhantomData })
1294
1.10k
                }
Unexecuted instantiation: <(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv4Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1261
1.46k
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1262
1.46k
                where
1263
1.46k
                    D: Deserializer<'de>,
1264
1.46k
                {
1265
                    struct TupleVisitor<$($name,)+> {
1266
                        marker: PhantomData<($($name,)+)>,
1267
                    }
1268
1269
                    impl<'de, $($name: Deserialize<'de>),+> Visitor<'de> for TupleVisitor<$($name,)+> {
1270
                        type Value = ($($name,)+);
1271
1272
                        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1273
                            formatter.write_str(concat!("a tuple of size ", $len))
1274
                        }
1275
1276
                        #[inline]
1277
                        #[allow(non_snake_case)]
1278
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1279
                        where
1280
                            A: SeqAccess<'de>,
1281
                        {
1282
                            $(
1283
                                let $name = match try!(seq.next_element()) {
1284
                                    Some(value) => value,
1285
                                    None => return Err(Error::invalid_length($n, &self)),
1286
                                };
1287
                            )+
1288
1289
                            Ok(($($name,)+))
1290
                        }
1291
                    }
1292
1293
1.46k
                    deserializer.deserialize_tuple($len, TupleVisitor { marker: PhantomData })
1294
1.46k
                }
Unexecuted instantiation: <(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <(core::net::ip_addr::Ipv6Addr, u16) as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <(_,) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize::<_>
1295
1296
                #[inline]
1297
0
                fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
1298
0
                where
1299
0
                    D: Deserializer<'de>,
1300
0
                {
1301
                    struct TupleInPlaceVisitor<'a, $($name: 'a,)+>(&'a mut ($($name,)+));
1302
1303
                    impl<'a, 'de, $($name: Deserialize<'de>),+> Visitor<'de> for TupleInPlaceVisitor<'a, $($name,)+> {
1304
                        type Value = ();
1305
1306
0
                        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1307
0
                            formatter.write_str(concat!("a tuple of size ", $len))
1308
0
                        }
Unexecuted instantiation: <<(_,) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::expecting
1309
1310
                        #[inline]
1311
                        #[allow(non_snake_case)]
1312
0
                        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
1313
0
                        where
1314
0
                            A: SeqAccess<'de>,
1315
0
                        {
1316
                            $(
1317
0
                                if try!(seq.next_element_seed(InPlaceSeed(&mut (self.0).$n))).is_none() {
1318
0
                                    return Err(Error::invalid_length($n, &self));
1319
0
                                }
1320
0
                            )+
1321
0
1322
0
                            Ok(())
1323
0
                        }
Unexecuted instantiation: <<(_,) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::TupleInPlaceVisitor<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _> as serde::de::Visitor>::visit_seq::<_>
1324
                    }
1325
1326
0
                    deserializer.deserialize_tuple($len, TupleInPlaceVisitor(place))
1327
0
                }
Unexecuted instantiation: <(_,) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as serde::de::Deserialize>::deserialize_in_place::<_>
1328
            }
1329
        )+
1330
    }
1331
}
1332
1333
tuple_impls! {
1334
    1  => (0 T0)
1335
    2  => (0 T0 1 T1)
1336
    3  => (0 T0 1 T1 2 T2)
1337
    4  => (0 T0 1 T1 2 T2 3 T3)
1338
    5  => (0 T0 1 T1 2 T2 3 T3 4 T4)
1339
    6  => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5)
1340
    7  => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6)
1341
    8  => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7)
1342
    9  => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8)
1343
    10 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9)
1344
    11 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10)
1345
    12 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11)
1346
    13 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12)
1347
    14 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13)
1348
    15 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13 14 T14)
1349
    16 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13 14 T14 15 T15)
1350
}
1351
1352
////////////////////////////////////////////////////////////////////////////////
1353
1354
#[cfg(any(feature = "std", feature = "alloc"))]
1355
macro_rules! map_impl {
1356
    (
1357
        $ty:ident < K $(: $kbound1:ident $(+ $kbound2:ident)*)*, V $(, $typaram:ident : $bound1:ident $(+ $bound2:ident)*)* >,
1358
        $access:ident,
1359
        $with_capacity:expr
1360
    ) => {
1361
        impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
1362
        where
1363
            K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
1364
            V: Deserialize<'de>,
1365
            $($typaram: $bound1 $(+ $bound2)*),*
1366
        {
1367
4.40k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1368
4.40k
            where
1369
4.40k
                D: Deserializer<'de>,
1370
4.40k
            {
1371
                struct MapVisitor<K, V $(, $typaram)*> {
1372
                    marker: PhantomData<$ty<K, V $(, $typaram)*>>,
1373
                }
1374
1375
                impl<'de, K, V $(, $typaram)*> Visitor<'de> for MapVisitor<K, V $(, $typaram)*>
1376
                where
1377
                    K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
1378
                    V: Deserialize<'de>,
1379
                    $($typaram: $bound1 $(+ $bound2)*),*
1380
                {
1381
                    type Value = $ty<K, V $(, $typaram)*>;
1382
1383
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1384
0
                        formatter.write_str("a map")
1385
0
                    }
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<_, _> as serde::de::Visitor>::expecting
Unexecuted instantiation: <<std::collections::hash::map::HashMap<_, _, _> as serde::de::Deserialize>::deserialize::MapVisitor<_, _, _> as serde::de::Visitor>::expecting
1386
1387
                    #[inline]
1388
4.34k
                    fn visit_map<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
1389
4.34k
                    where
1390
4.34k
                        A: MapAccess<'de>,
1391
4.34k
                    {
1392
4.34k
                        let mut values = $with_capacity;
1393
1394
12.4k
                        while let Some((key, value)) = try!($access.next_entry()) {
1395
8.08k
                            values.insert(key, value);
1396
8.08k
                        }
1397
1398
2.82k
                        Ok(values)
1399
4.34k
                    }
<<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1388
4.34k
                    fn visit_map<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
1389
4.34k
                    where
1390
4.34k
                        A: MapAccess<'de>,
1391
4.34k
                    {
1392
4.34k
                        let mut values = $with_capacity;
1393
1394
12.4k
                        while let Some((key, value)) = try!($access.next_entry()) {
1395
8.08k
                            values.insert(key, value);
1396
8.08k
                        }
1397
1398
2.82k
                        Ok(values)
1399
4.34k
                    }
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<u8, compat::AllTypes> as serde::de::Visitor>::visit_map::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_map::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::MapVisitor<_, _> as serde::de::Visitor>::visit_map::<_>
Unexecuted instantiation: <<std::collections::hash::map::HashMap<_, _, _> as serde::de::Deserialize>::deserialize::MapVisitor<_, _, _> as serde::de::Visitor>::visit_map::<_>
1400
                }
1401
1402
4.40k
                let visitor = MapVisitor { marker: PhantomData };
1403
4.40k
                deserializer.deserialize_map(visitor)
1404
4.40k
            }
<alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1367
4.40k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1368
4.40k
            where
1369
4.40k
                D: Deserializer<'de>,
1370
4.40k
            {
1371
                struct MapVisitor<K, V $(, $typaram)*> {
1372
                    marker: PhantomData<$ty<K, V $(, $typaram)*>>,
1373
                }
1374
1375
                impl<'de, K, V $(, $typaram)*> Visitor<'de> for MapVisitor<K, V $(, $typaram)*>
1376
                where
1377
                    K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
1378
                    V: Deserialize<'de>,
1379
                    $($typaram: $bound1 $(+ $bound2)*),*
1380
                {
1381
                    type Value = $ty<K, V $(, $typaram)*>;
1382
1383
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1384
                        formatter.write_str("a map")
1385
                    }
1386
1387
                    #[inline]
1388
                    fn visit_map<A>(self, mut $access: A) -> Result<Self::Value, A::Error>
1389
                    where
1390
                        A: MapAccess<'de>,
1391
                    {
1392
                        let mut values = $with_capacity;
1393
1394
                        while let Some((key, value)) = try!($access.next_entry()) {
1395
                            values.insert(key, value);
1396
                        }
1397
1398
                        Ok(values)
1399
                    }
1400
                }
1401
1402
4.40k
                let visitor = MapVisitor { marker: PhantomData };
1403
4.40k
                deserializer.deserialize_map(visitor)
1404
4.40k
            }
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<u8, compat::AllTypes> as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <alloc::collections::btree::map::BTreeMap<_, _> as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <std::collections::hash::map::HashMap<_, _, _> as serde::de::Deserialize>::deserialize::<_>
1405
        }
1406
    }
1407
}
1408
1409
#[cfg(any(feature = "std", feature = "alloc"))]
1410
map_impl!(
1411
    BTreeMap<K: Ord, V>,
1412
    map,
1413
    BTreeMap::new());
1414
1415
#[cfg(feature = "std")]
1416
map_impl!(
1417
    HashMap<K: Eq + Hash, V, S: BuildHasher + Default>,
1418
    map,
1419
    HashMap::with_capacity_and_hasher(size_hint::cautious(map.size_hint()), S::default()));
1420
1421
////////////////////////////////////////////////////////////////////////////////
1422
1423
#[cfg(feature = "std")]
1424
macro_rules! parse_ip_impl {
1425
    ($expecting:tt $ty:ty; $size:tt) => {
1426
        impl<'de> Deserialize<'de> for $ty {
1427
4.74k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1428
4.74k
            where
1429
4.74k
                D: Deserializer<'de>,
1430
4.74k
            {
1431
4.74k
                if deserializer.is_human_readable() {
1432
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1433
                } else {
1434
4.74k
                    <[u8; $size]>::deserialize(deserializer).map(<$ty>::from)
1435
                }
1436
4.74k
            }
<core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1427
1.96k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1428
1.96k
            where
1429
1.96k
                D: Deserializer<'de>,
1430
1.96k
            {
1431
1.96k
                if deserializer.is_human_readable() {
1432
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1433
                } else {
1434
1.96k
                    <[u8; $size]>::deserialize(deserializer).map(<$ty>::from)
1435
                }
1436
1.96k
            }
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1427
2.77k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1428
2.77k
            where
1429
2.77k
                D: Deserializer<'de>,
1430
2.77k
            {
1431
2.77k
                if deserializer.is_human_readable() {
1432
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1433
                } else {
1434
2.77k
                    <[u8; $size]>::deserialize(deserializer).map(<$ty>::from)
1435
                }
1436
2.77k
            }
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::ip_addr::Ipv4Addr as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::net::ip_addr::Ipv6Addr as serde::de::Deserialize>::deserialize::<_>
1437
        }
1438
    };
1439
}
1440
1441
#[cfg(feature = "std")]
1442
macro_rules! variant_identifier {
1443
    (
1444
        $name_kind: ident ( $($variant: ident; $bytes: expr; $index: expr),* )
1445
        $expecting_message: expr,
1446
        $variants_name: ident
1447
    ) => {
1448
        enum $name_kind {
1449
            $( $variant ),*
1450
        }
1451
1452
        static $variants_name: &'static [&'static str] = &[ $( stringify!($variant) ),*];
1453
1454
        impl<'de> Deserialize<'de> for $name_kind {
1455
2.16k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1456
2.16k
            where
1457
2.16k
                D: Deserializer<'de>,
1458
2.16k
            {
1459
                struct KindVisitor;
1460
1461
                impl<'de> Visitor<'de> for KindVisitor {
1462
                    type Value = $name_kind;
1463
1464
34
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1465
34
                        formatter.write_str($expecting_message)
1466
34
                    }
Unexecuted instantiation: <<serde::de::impls::OsStringKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::expecting
<<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::expecting
Line
Count
Source
1464
18
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1465
18
                        formatter.write_str($expecting_message)
1466
18
                    }
<<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::expecting
Line
Count
Source
1464
16
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1465
16
                        formatter.write_str($expecting_message)
1466
16
                    }
1467
1468
2.16k
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
1469
2.16k
                    where
1470
2.16k
                        E: Error,
1471
2.16k
                    {
1472
2.16k
                        match value {
1473
                            $(
1474
1.05k
                                $index => Ok($name_kind :: $variant),
1475
                            )*
1476
34
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self),),
1477
                        }
1478
2.16k
                    }
<<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_u64::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
1468
737
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
1469
737
                    where
1470
737
                        E: Error,
1471
737
                    {
1472
737
                        match value {
1473
                            $(
1474
393
                                $index => Ok($name_kind :: $variant),
1475
                            )*
1476
18
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self),),
1477
                        }
1478
737
                    }
<<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_u64::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
1468
1.42k
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
1469
1.42k
                    where
1470
1.42k
                        E: Error,
1471
1.42k
                    {
1472
1.42k
                        match value {
1473
                            $(
1474
659
                                $index => Ok($name_kind :: $variant),
1475
                            )*
1476
16
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self),),
1477
                        }
1478
1.42k
                    }
Unexecuted instantiation: <<serde::de::impls::OsStringKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_u64::<_>
1479
1480
0
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1481
0
                    where
1482
0
                        E: Error,
1483
0
                    {
1484
0
                        match value {
1485
0
                            $(
1486
0
                                stringify!($variant) => Ok($name_kind :: $variant),
1487
                            )*
1488
0
                            _ => Err(Error::unknown_variant(value, $variants_name)),
1489
                        }
1490
0
                    }
Unexecuted instantiation: <<serde::de::impls::OsStringKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_str::<_>
1491
1492
0
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1493
0
                    where
1494
0
                        E: Error,
1495
0
                    {
1496
0
                        match value {
1497
                            $(
1498
0
                                $bytes => Ok($name_kind :: $variant),
1499
                            )*
1500
                            _ => {
1501
0
                                match str::from_utf8(value) {
1502
0
                                    Ok(value) => Err(Error::unknown_variant(value, $variants_name)),
1503
0
                                    Err(_) => Err(Error::invalid_value(Unexpected::Bytes(value), &self)),
1504
                                }
1505
                            }
1506
                        }
1507
0
                    }
Unexecuted instantiation: <<serde::de::impls::OsStringKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::KindVisitor as serde::de::Visitor>::visit_bytes::<_>
1508
                }
1509
1510
2.16k
                deserializer.deserialize_identifier(KindVisitor)
1511
2.16k
            }
<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::<serde::de::value::U32Deserializer<alloc::boxed::Box<bincode::error::ErrorKind>>>
Line
Count
Source
1455
737
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1456
737
            where
1457
737
                D: Deserializer<'de>,
1458
737
            {
1459
                struct KindVisitor;
1460
1461
                impl<'de> Visitor<'de> for KindVisitor {
1462
                    type Value = $name_kind;
1463
1464
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1465
                        formatter.write_str($expecting_message)
1466
                    }
1467
1468
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
1469
                    where
1470
                        E: Error,
1471
                    {
1472
                        match value {
1473
                            $(
1474
                                $index => Ok($name_kind :: $variant),
1475
                            )*
1476
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self),),
1477
                        }
1478
                    }
1479
1480
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1481
                    where
1482
                        E: Error,
1483
                    {
1484
                        match value {
1485
                            $(
1486
                                stringify!($variant) => Ok($name_kind :: $variant),
1487
                            )*
1488
                            _ => Err(Error::unknown_variant(value, $variants_name)),
1489
                        }
1490
                    }
1491
1492
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1493
                    where
1494
                        E: Error,
1495
                    {
1496
                        match value {
1497
                            $(
1498
                                $bytes => Ok($name_kind :: $variant),
1499
                            )*
1500
                            _ => {
1501
                                match str::from_utf8(value) {
1502
                                    Ok(value) => Err(Error::unknown_variant(value, $variants_name)),
1503
                                    Err(_) => Err(Error::invalid_value(Unexpected::Bytes(value), &self)),
1504
                                }
1505
                            }
1506
                        }
1507
                    }
1508
                }
1509
1510
737
                deserializer.deserialize_identifier(KindVisitor)
1511
737
            }
<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::<serde::de::value::U32Deserializer<alloc::boxed::Box<bincode::error::ErrorKind>>>
Line
Count
Source
1455
1.42k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1456
1.42k
            where
1457
1.42k
                D: Deserializer<'de>,
1458
1.42k
            {
1459
                struct KindVisitor;
1460
1461
                impl<'de> Visitor<'de> for KindVisitor {
1462
                    type Value = $name_kind;
1463
1464
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1465
                        formatter.write_str($expecting_message)
1466
                    }
1467
1468
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
1469
                    where
1470
                        E: Error,
1471
                    {
1472
                        match value {
1473
                            $(
1474
                                $index => Ok($name_kind :: $variant),
1475
                            )*
1476
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self),),
1477
                        }
1478
                    }
1479
1480
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1481
                    where
1482
                        E: Error,
1483
                    {
1484
                        match value {
1485
                            $(
1486
                                stringify!($variant) => Ok($name_kind :: $variant),
1487
                            )*
1488
                            _ => Err(Error::unknown_variant(value, $variants_name)),
1489
                        }
1490
                    }
1491
1492
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1493
                    where
1494
                        E: Error,
1495
                    {
1496
                        match value {
1497
                            $(
1498
                                $bytes => Ok($name_kind :: $variant),
1499
                            )*
1500
                            _ => {
1501
                                match str::from_utf8(value) {
1502
                                    Ok(value) => Err(Error::unknown_variant(value, $variants_name)),
1503
                                    Err(_) => Err(Error::invalid_value(Unexpected::Bytes(value), &self)),
1504
                                }
1505
                            }
1506
                        }
1507
                    }
1508
                }
1509
1510
1.42k
                deserializer.deserialize_identifier(KindVisitor)
1511
1.42k
            }
Unexecuted instantiation: <serde::de::impls::OsStringKind as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::IpAddrKind as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::SocketAddrKind as serde::de::Deserialize>::deserialize::<_>
1512
        }
1513
    }
1514
}
1515
1516
#[cfg(feature = "std")]
1517
macro_rules! deserialize_enum {
1518
    (
1519
        $name: ident $name_kind: ident ( $($variant: ident; $bytes: expr; $index: expr),* )
1520
        $expecting_message: expr,
1521
        $deserializer: expr
1522
    ) => {
1523
        variant_identifier!{
1524
            $name_kind ( $($variant; $bytes; $index),* )
1525
            $expecting_message,
1526
            VARIANTS
1527
        }
1528
1529
        struct EnumVisitor;
1530
        impl<'de> Visitor<'de> for EnumVisitor {
1531
            type Value = $name;
1532
1533
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1534
0
                formatter.write_str(concat!("a ", stringify!($name)))
1535
0
            }
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::expecting
1536
1537
1538
2.23k
            fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
1539
2.23k
            where
1540
2.23k
                A: EnumAccess<'de>,
1541
2.23k
            {
1542
2.23k
                match try!(data.variant()) {
1543
                    $(
1544
1.05k
                        ($name_kind :: $variant, v) => v.newtype_variant().map($name :: $variant),
1545
                    )*
1546
                }
1547
2.23k
            }
<<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1538
770
            fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
1539
770
            where
1540
770
                A: EnumAccess<'de>,
1541
770
            {
1542
770
                match try!(data.variant()) {
1543
                    $(
1544
393
                        ($name_kind :: $variant, v) => v.newtype_variant().map($name :: $variant),
1545
                    )*
1546
                }
1547
770
            }
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1538
1.46k
            fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
1539
1.46k
            where
1540
1.46k
                A: EnumAccess<'de>,
1541
1.46k
            {
1542
1.46k
                match try!(data.variant()) {
1543
                    $(
1544
659
                        ($name_kind :: $variant, v) => v.newtype_variant().map($name :: $variant),
1545
                    )*
1546
                }
1547
1.46k
            }
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::EnumVisitor as serde::de::Visitor>::visit_enum::<_>
1548
        }
1549
        $deserializer.deserialize_enum(stringify!($name), VARIANTS, EnumVisitor)
1550
    }
1551
}
1552
1553
#[cfg(feature = "std")]
1554
impl<'de> Deserialize<'de> for net::IpAddr {
1555
770
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1556
770
    where
1557
770
        D: Deserializer<'de>,
1558
770
    {
1559
770
        if deserializer.is_human_readable() {
1560
0
            deserializer.deserialize_str(FromStrVisitor::new("IP address"))
1561
        } else {
1562
            use lib::net::IpAddr;
1563
770
            deserialize_enum! {
1564
770
                IpAddr IpAddrKind (V4; b"V4"; 0, V6; b"V6"; 1)
1565
770
                "`V4` or `V6`",
1566
770
                deserializer
1567
770
            }
1568
        }
1569
770
    }
<core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1555
770
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1556
770
    where
1557
770
        D: Deserializer<'de>,
1558
770
    {
1559
770
        if deserializer.is_human_readable() {
1560
0
            deserializer.deserialize_str(FromStrVisitor::new("IP address"))
1561
        } else {
1562
            use lib::net::IpAddr;
1563
770
            deserialize_enum! {
1564
770
                IpAddr IpAddrKind (V4; b"V4"; 0, V6; b"V6"; 1)
1565
770
                "`V4` or `V6`",
1566
770
                deserializer
1567
770
            }
1568
        }
1569
770
    }
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::ip_addr::IpAddr as serde::de::Deserialize>::deserialize::<_>
1570
}
1571
1572
#[cfg(feature = "std")]
1573
parse_ip_impl!("IPv4 address" net::Ipv4Addr; 4);
1574
1575
#[cfg(feature = "std")]
1576
parse_ip_impl!("IPv6 address" net::Ipv6Addr; 16);
1577
1578
#[cfg(feature = "std")]
1579
macro_rules! parse_socket_impl {
1580
    ($expecting:tt $ty:ty, $new:expr) => {
1581
        impl<'de> Deserialize<'de> for $ty {
1582
2.56k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1583
2.56k
            where
1584
2.56k
                D: Deserializer<'de>,
1585
2.56k
            {
1586
2.56k
                if deserializer.is_human_readable() {
1587
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1588
                } else {
1589
2.56k
                    <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
<core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>::{closure#0}
Line
Count
Source
1589
1.04k
                    <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>::{closure#0}
<core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>::{closure#0}
Line
Count
Source
1589
1.37k
                    <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<_>::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<_>::{closure#0}
1590
                }
1591
2.56k
            }
<core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1582
1.10k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1583
1.10k
            where
1584
1.10k
                D: Deserializer<'de>,
1585
1.10k
            {
1586
1.10k
                if deserializer.is_human_readable() {
1587
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1588
                } else {
1589
1.10k
                    <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
1590
                }
1591
1.10k
            }
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
<core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1582
1.46k
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1583
1.46k
            where
1584
1.46k
                D: Deserializer<'de>,
1585
1.46k
            {
1586
1.46k
                if deserializer.is_human_readable() {
1587
0
                    deserializer.deserialize_str(FromStrVisitor::new($expecting))
1588
                } else {
1589
1.46k
                    <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
1590
                }
1591
1.46k
            }
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV4 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<_>
1592
        }
1593
    };
1594
}
1595
1596
#[cfg(feature = "std")]
1597
impl<'de> Deserialize<'de> for net::SocketAddr {
1598
1.46k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1599
1.46k
    where
1600
1.46k
        D: Deserializer<'de>,
1601
1.46k
    {
1602
1.46k
        if deserializer.is_human_readable() {
1603
0
            deserializer.deserialize_str(FromStrVisitor::new("socket address"))
1604
        } else {
1605
            use lib::net::SocketAddr;
1606
1.46k
            deserialize_enum! {
1607
1.46k
                SocketAddr SocketAddrKind (V4; b"V4"; 0, V6; b"V6"; 1)
1608
1.46k
                "`V4` or `V6`",
1609
1.46k
                deserializer
1610
1.46k
            }
1611
        }
1612
1.46k
    }
<core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1598
1.46k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1599
1.46k
    where
1600
1.46k
        D: Deserializer<'de>,
1601
1.46k
    {
1602
1.46k
        if deserializer.is_human_readable() {
1603
0
            deserializer.deserialize_str(FromStrVisitor::new("socket address"))
1604
        } else {
1605
            use lib::net::SocketAddr;
1606
1.46k
            deserialize_enum! {
1607
1.46k
                SocketAddr SocketAddrKind (V4; b"V4"; 0, V6; b"V6"; 1)
1608
1.46k
                "`V4` or `V6`",
1609
1.46k
                deserializer
1610
1.46k
            }
1611
        }
1612
1.46k
    }
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::net::socket_addr::SocketAddr as serde::de::Deserialize>::deserialize::<_>
1613
}
1614
1615
#[cfg(feature = "std")]
1616
parse_socket_impl!("IPv4 socket address" net::SocketAddrV4, net::SocketAddrV4::new);
1617
1618
#[cfg(feature = "std")]
1619
1.37k
parse_socket_impl!("IPv6 socket address" net::SocketAddrV6, |ip, port| net::SocketAddrV6::new(
1620
1.37k
    ip, port, 0, 0
1621
1.37k
));
<core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>::{closure#0}::{closure#0}
Line
Count
Source
1619
1.37k
parse_socket_impl!("IPv6 socket address" net::SocketAddrV6, |ip, port| net::SocketAddrV6::new(
1620
1.37k
    ip, port, 0, 0
1621
1.37k
));
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <core::net::socket_addr::SocketAddrV6 as serde::de::Deserialize>::deserialize::<_>::{closure#0}::{closure#0}
1622
1623
////////////////////////////////////////////////////////////////////////////////
1624
1625
#[cfg(feature = "std")]
1626
struct PathVisitor;
1627
1628
#[cfg(feature = "std")]
1629
impl<'a> Visitor<'a> for PathVisitor {
1630
    type Value = &'a Path;
1631
1632
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1633
0
        formatter.write_str("a borrowed path")
1634
0
    }
1635
1636
0
    fn visit_borrowed_str<E>(self, v: &'a str) -> Result<Self::Value, E>
1637
0
    where
1638
0
        E: Error,
1639
0
    {
1640
0
        Ok(v.as_ref())
1641
0
    }
1642
1643
0
    fn visit_borrowed_bytes<E>(self, v: &'a [u8]) -> Result<Self::Value, E>
1644
0
    where
1645
0
        E: Error,
1646
0
    {
1647
0
        str::from_utf8(v)
1648
0
            .map(AsRef::as_ref)
1649
0
            .map_err(|_| Error::invalid_value(Unexpected::Bytes(v), &self))
1650
0
    }
1651
}
1652
1653
#[cfg(feature = "std")]
1654
impl<'de: 'a, 'a> Deserialize<'de> for &'a Path {
1655
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1656
0
    where
1657
0
        D: Deserializer<'de>,
1658
0
    {
1659
0
        deserializer.deserialize_str(PathVisitor)
1660
0
    }
1661
}
1662
1663
#[cfg(feature = "std")]
1664
struct PathBufVisitor;
1665
1666
#[cfg(feature = "std")]
1667
impl<'de> Visitor<'de> for PathBufVisitor {
1668
    type Value = PathBuf;
1669
1670
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1671
0
        formatter.write_str("path string")
1672
0
    }
1673
1674
0
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
1675
0
    where
1676
0
        E: Error,
1677
0
    {
1678
0
        Ok(From::from(v))
1679
0
    }
1680
1681
775
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
1682
775
    where
1683
775
        E: Error,
1684
775
    {
1685
775
        Ok(From::from(v))
1686
775
    }
<serde::de::impls::PathBufVisitor as serde::de::Visitor>::visit_string::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
1681
775
    fn visit_string<E>(self, v: String) -> Result<Self::Value, E>
1682
775
    where
1683
775
        E: Error,
1684
775
    {
1685
775
        Ok(From::from(v))
1686
775
    }
Unexecuted instantiation: <serde::de::impls::PathBufVisitor as serde::de::Visitor>::visit_string::<_>
1687
1688
0
    fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
1689
0
    where
1690
0
        E: Error,
1691
0
    {
1692
0
        str::from_utf8(v)
1693
0
            .map(From::from)
1694
0
            .map_err(|_| Error::invalid_value(Unexpected::Bytes(v), &self))
1695
0
    }
1696
1697
0
    fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>
1698
0
    where
1699
0
        E: Error,
1700
0
    {
1701
0
        String::from_utf8(v)
1702
0
            .map(From::from)
1703
0
            .map_err(|e| Error::invalid_value(Unexpected::Bytes(&e.into_bytes()), &self))
1704
0
    }
1705
}
1706
1707
#[cfg(feature = "std")]
1708
impl<'de> Deserialize<'de> for PathBuf {
1709
850
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1710
850
    where
1711
850
        D: Deserializer<'de>,
1712
850
    {
1713
850
        deserializer.deserialize_string(PathBufVisitor)
1714
850
    }
<std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1709
850
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1710
850
    where
1711
850
        D: Deserializer<'de>,
1712
850
    {
1713
850
        deserializer.deserialize_string(PathBufVisitor)
1714
850
    }
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <std::path::PathBuf as serde::de::Deserialize>::deserialize::<_>
1715
}
1716
1717
#[cfg(all(feature = "std", not(no_de_boxed_path)))]
1718
forwarded_impl!((), Box<Path>, PathBuf::into_boxed_path);
1719
1720
////////////////////////////////////////////////////////////////////////////////
1721
1722
// If this were outside of the serde crate, it would just use:
1723
//
1724
//    #[derive(Deserialize)]
1725
//    #[serde(variant_identifier)]
1726
#[cfg(all(feature = "std", any(unix, windows)))]
1727
variant_identifier! {
1728
    OsStringKind (Unix; b"Unix"; 0, Windows; b"Windows"; 1)
1729
    "`Unix` or `Windows`",
1730
    OSSTR_VARIANTS
1731
}
1732
1733
#[cfg(all(feature = "std", any(unix, windows)))]
1734
struct OsStringVisitor;
1735
1736
#[cfg(all(feature = "std", any(unix, windows)))]
1737
impl<'de> Visitor<'de> for OsStringVisitor {
1738
    type Value = OsString;
1739
1740
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1741
0
        formatter.write_str("os string")
1742
0
    }
1743
1744
    #[cfg(unix)]
1745
0
    fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
1746
0
    where
1747
0
        A: EnumAccess<'de>,
1748
0
    {
1749
        use std::os::unix::ffi::OsStringExt;
1750
1751
0
        match try!(data.variant()) {
1752
0
            (OsStringKind::Unix, v) => v.newtype_variant().map(OsString::from_vec),
1753
0
            (OsStringKind::Windows, _) => Err(Error::custom(
1754
0
                "cannot deserialize Windows OS string on Unix",
1755
0
            )),
1756
        }
1757
0
    }
1758
1759
    #[cfg(windows)]
1760
    fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
1761
    where
1762
        A: EnumAccess<'de>,
1763
    {
1764
        use std::os::windows::ffi::OsStringExt;
1765
1766
        match try!(data.variant()) {
1767
            (OsStringKind::Windows, v) => v
1768
                .newtype_variant::<Vec<u16>>()
1769
                .map(|vec| OsString::from_wide(&vec)),
1770
            (OsStringKind::Unix, _) => Err(Error::custom(
1771
                "cannot deserialize Unix OS string on Windows",
1772
            )),
1773
        }
1774
    }
1775
}
1776
1777
#[cfg(all(feature = "std", any(unix, windows)))]
1778
impl<'de> Deserialize<'de> for OsString {
1779
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1780
0
    where
1781
0
        D: Deserializer<'de>,
1782
0
    {
1783
0
        deserializer.deserialize_enum("OsString", OSSTR_VARIANTS, OsStringVisitor)
1784
0
    }
1785
}
1786
1787
////////////////////////////////////////////////////////////////////////////////
1788
1789
#[cfg(any(feature = "std", feature = "alloc"))]
1790
forwarded_impl!((T), Box<T>, Box::new);
1791
1792
#[cfg(any(feature = "std", feature = "alloc"))]
1793
forwarded_impl!((T), Box<[T]>, Vec::into_boxed_slice);
1794
1795
#[cfg(any(feature = "std", feature = "alloc"))]
1796
forwarded_impl!((), Box<str>, String::into_boxed_str);
1797
1798
#[cfg(all(no_de_rc_dst, feature = "rc", any(feature = "std", feature = "alloc")))]
1799
forwarded_impl! {
1800
    /// This impl requires the [`"rc"`] Cargo feature of Serde.
1801
    ///
1802
    /// Deserializing a data structure containing `Arc` will not attempt to
1803
    /// deduplicate `Arc` references to the same data. Every deserialized `Arc`
1804
    /// will end up with a strong count of 1.
1805
    ///
1806
    /// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1807
    (T), Arc<T>, Arc::new
1808
}
1809
1810
#[cfg(all(no_de_rc_dst, feature = "rc", any(feature = "std", feature = "alloc")))]
1811
forwarded_impl! {
1812
    /// This impl requires the [`"rc"`] Cargo feature of Serde.
1813
    ///
1814
    /// Deserializing a data structure containing `Rc` will not attempt to
1815
    /// deduplicate `Rc` references to the same data. Every deserialized `Rc`
1816
    /// will end up with a strong count of 1.
1817
    ///
1818
    /// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1819
    (T), Rc<T>, Rc::new
1820
}
1821
1822
#[cfg(any(feature = "std", feature = "alloc"))]
1823
impl<'de, 'a, T: ?Sized> Deserialize<'de> for Cow<'a, T>
1824
where
1825
    T: ToOwned,
1826
    T::Owned: Deserialize<'de>,
1827
{
1828
    #[inline]
1829
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1830
0
    where
1831
0
        D: Deserializer<'de>,
1832
0
    {
1833
0
        T::Owned::deserialize(deserializer).map(Cow::Owned)
1834
0
    }
1835
}
1836
1837
////////////////////////////////////////////////////////////////////////////////
1838
1839
/// This impl requires the [`"rc"`] Cargo feature of Serde. The resulting
1840
/// `Weak<T>` has a reference count of 0 and cannot be upgraded.
1841
///
1842
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1843
#[cfg(all(feature = "rc", any(feature = "std", feature = "alloc")))]
1844
impl<'de, T: ?Sized> Deserialize<'de> for RcWeak<T>
1845
where
1846
    T: Deserialize<'de>,
1847
{
1848
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1849
    where
1850
        D: Deserializer<'de>,
1851
    {
1852
        try!(Option::<T>::deserialize(deserializer));
1853
        Ok(RcWeak::new())
1854
    }
1855
}
1856
1857
/// This impl requires the [`"rc"`] Cargo feature of Serde. The resulting
1858
/// `Weak<T>` has a reference count of 0 and cannot be upgraded.
1859
///
1860
/// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1861
#[cfg(all(feature = "rc", any(feature = "std", feature = "alloc")))]
1862
impl<'de, T: ?Sized> Deserialize<'de> for ArcWeak<T>
1863
where
1864
    T: Deserialize<'de>,
1865
{
1866
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1867
    where
1868
        D: Deserializer<'de>,
1869
    {
1870
        try!(Option::<T>::deserialize(deserializer));
1871
        Ok(ArcWeak::new())
1872
    }
1873
}
1874
1875
////////////////////////////////////////////////////////////////////////////////
1876
1877
#[cfg(all(
1878
    not(no_de_rc_dst),
1879
    feature = "rc",
1880
    any(feature = "std", feature = "alloc")
1881
))]
1882
macro_rules! box_forwarded_impl {
1883
    (
1884
        $(#[doc = $doc:tt])*
1885
        $t:ident
1886
    ) => {
1887
        $(#[doc = $doc])*
1888
        impl<'de, T: ?Sized> Deserialize<'de> for $t<T>
1889
        where
1890
            Box<T>: Deserialize<'de>,
1891
        {
1892
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1893
            where
1894
                D: Deserializer<'de>,
1895
            {
1896
                Box::deserialize(deserializer).map(Into::into)
1897
            }
1898
        }
1899
    };
1900
}
1901
1902
#[cfg(all(
1903
    not(no_de_rc_dst),
1904
    feature = "rc",
1905
    any(feature = "std", feature = "alloc")
1906
))]
1907
box_forwarded_impl! {
1908
    /// This impl requires the [`"rc"`] Cargo feature of Serde.
1909
    ///
1910
    /// Deserializing a data structure containing `Rc` will not attempt to
1911
    /// deduplicate `Rc` references to the same data. Every deserialized `Rc`
1912
    /// will end up with a strong count of 1.
1913
    ///
1914
    /// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1915
    Rc
1916
}
1917
1918
#[cfg(all(
1919
    not(no_de_rc_dst),
1920
    feature = "rc",
1921
    any(feature = "std", feature = "alloc")
1922
))]
1923
box_forwarded_impl! {
1924
    /// This impl requires the [`"rc"`] Cargo feature of Serde.
1925
    ///
1926
    /// Deserializing a data structure containing `Arc` will not attempt to
1927
    /// deduplicate `Arc` references to the same data. Every deserialized `Arc`
1928
    /// will end up with a strong count of 1.
1929
    ///
1930
    /// [`"rc"`]: https://serde.rs/feature-flags.html#-features-rc
1931
    Arc
1932
}
1933
1934
////////////////////////////////////////////////////////////////////////////////
1935
1936
impl<'de, T> Deserialize<'de> for Cell<T>
1937
where
1938
    T: Deserialize<'de> + Copy,
1939
{
1940
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1941
0
    where
1942
0
        D: Deserializer<'de>,
1943
0
    {
1944
0
        T::deserialize(deserializer).map(Cell::new)
1945
0
    }
1946
}
1947
1948
forwarded_impl!((T), RefCell<T>, RefCell::new);
1949
1950
#[cfg(feature = "std")]
1951
forwarded_impl!((T), Mutex<T>, Mutex::new);
1952
1953
#[cfg(feature = "std")]
1954
forwarded_impl!((T), RwLock<T>, RwLock::new);
1955
1956
////////////////////////////////////////////////////////////////////////////////
1957
1958
// This is a cleaned-up version of the impl generated by:
1959
//
1960
//     #[derive(Deserialize)]
1961
//     #[serde(deny_unknown_fields)]
1962
//     struct Duration {
1963
//         secs: u64,
1964
//         nanos: u32,
1965
//     }
1966
#[cfg(any(feature = "std", not(no_core_duration)))]
1967
impl<'de> Deserialize<'de> for Duration {
1968
1.07k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1969
1.07k
    where
1970
1.07k
        D: Deserializer<'de>,
1971
1.07k
    {
1972
        // If this were outside of the serde crate, it would just use:
1973
        //
1974
        //    #[derive(Deserialize)]
1975
        //    #[serde(field_identifier, rename_all = "lowercase")]
1976
        enum Field {
1977
            Secs,
1978
            Nanos,
1979
        }
1980
1981
        impl<'de> Deserialize<'de> for Field {
1982
0
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1983
0
            where
1984
0
                D: Deserializer<'de>,
1985
0
            {
1986
                struct FieldVisitor;
1987
1988
                impl<'de> Visitor<'de> for FieldVisitor {
1989
                    type Value = Field;
1990
1991
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1992
0
                        formatter.write_str("`secs` or `nanos`")
1993
0
                    }
1994
1995
0
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1996
0
                    where
1997
0
                        E: Error,
1998
0
                    {
1999
0
                        match value {
2000
0
                            "secs" => Ok(Field::Secs),
2001
0
                            "nanos" => Ok(Field::Nanos),
2002
0
                            _ => Err(Error::unknown_field(value, FIELDS)),
2003
                        }
2004
0
                    }
2005
2006
0
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2007
0
                    where
2008
0
                        E: Error,
2009
0
                    {
2010
0
                        match value {
2011
0
                            b"secs" => Ok(Field::Secs),
2012
0
                            b"nanos" => Ok(Field::Nanos),
2013
                            _ => {
2014
0
                                let value = ::__private::from_utf8_lossy(value);
2015
0
                                Err(Error::unknown_field(&value, FIELDS))
2016
                            }
2017
                        }
2018
0
                    }
2019
                }
2020
2021
0
                deserializer.deserialize_identifier(FieldVisitor)
2022
0
            }
2023
        }
2024
2025
1.01k
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2026
1.01k
        where
2027
1.01k
            E: Error,
2028
1.01k
        {
2029
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2030
1.01k
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2031
1.01k
                Some(_) => Ok(()),
2032
2
                None => Err(E::custom("overflow deserializing Duration")),
2033
            }
2034
1.01k
        }
<core::time::Duration as serde::de::Deserialize>::deserialize::check_overflow::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
2025
1.01k
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2026
1.01k
        where
2027
1.01k
            E: Error,
2028
1.01k
        {
2029
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2030
1.01k
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2031
1.01k
                Some(_) => Ok(()),
2032
2
                None => Err(E::custom("overflow deserializing Duration")),
2033
            }
2034
1.01k
        }
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::check_overflow::<_>
2035
2036
        struct DurationVisitor;
2037
2038
        impl<'de> Visitor<'de> for DurationVisitor {
2039
            type Value = Duration;
2040
2041
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2042
0
                formatter.write_str("struct Duration")
2043
0
            }
2044
2045
1.07k
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2046
1.07k
            where
2047
1.07k
                A: SeqAccess<'de>,
2048
1.07k
            {
2049
1.07k
                let secs: u64 = match try!(seq.next_element()) {
2050
1.04k
                    Some(value) => value,
2051
                    None => {
2052
0
                        return Err(Error::invalid_length(0, &self));
2053
                    }
2054
                };
2055
1.04k
                let nanos: u32 = match try!(seq.next_element()) {
2056
1.01k
                    Some(value) => value,
2057
                    None => {
2058
0
                        return Err(Error::invalid_length(1, &self));
2059
                    }
2060
                };
2061
1.01k
                try!(check_overflow(secs, nanos));
2062
1.01k
                Ok(Duration::new(secs, nanos))
2063
1.07k
            }
<<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
2045
1.07k
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2046
1.07k
            where
2047
1.07k
                A: SeqAccess<'de>,
2048
1.07k
            {
2049
1.07k
                let secs: u64 = match try!(seq.next_element()) {
2050
1.04k
                    Some(value) => value,
2051
                    None => {
2052
0
                        return Err(Error::invalid_length(0, &self));
2053
                    }
2054
                };
2055
1.04k
                let nanos: u32 = match try!(seq.next_element()) {
2056
1.01k
                    Some(value) => value,
2057
                    None => {
2058
0
                        return Err(Error::invalid_length(1, &self));
2059
                    }
2060
                };
2061
1.01k
                try!(check_overflow(secs, nanos));
2062
1.01k
                Ok(Duration::new(secs, nanos))
2063
1.07k
            }
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<core::time::Duration as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<_>
2064
2065
0
            fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2066
0
            where
2067
0
                A: MapAccess<'de>,
2068
0
            {
2069
0
                let mut secs: Option<u64> = None;
2070
0
                let mut nanos: Option<u32> = None;
2071
0
                while let Some(key) = try!(map.next_key()) {
2072
0
                    match key {
2073
                        Field::Secs => {
2074
0
                            if secs.is_some() {
2075
0
                                return Err(<A::Error as Error>::duplicate_field("secs"));
2076
0
                            }
2077
0
                            secs = Some(try!(map.next_value()));
2078
                        }
2079
                        Field::Nanos => {
2080
0
                            if nanos.is_some() {
2081
0
                                return Err(<A::Error as Error>::duplicate_field("nanos"));
2082
0
                            }
2083
0
                            nanos = Some(try!(map.next_value()));
2084
                        }
2085
                    }
2086
                }
2087
0
                let secs = match secs {
2088
0
                    Some(secs) => secs,
2089
0
                    None => return Err(<A::Error as Error>::missing_field("secs")),
2090
                };
2091
0
                let nanos = match nanos {
2092
0
                    Some(nanos) => nanos,
2093
0
                    None => return Err(<A::Error as Error>::missing_field("nanos")),
2094
                };
2095
0
                try!(check_overflow(secs, nanos));
2096
0
                Ok(Duration::new(secs, nanos))
2097
0
            }
2098
        }
2099
2100
        const FIELDS: &'static [&'static str] = &["secs", "nanos"];
2101
1.07k
        deserializer.deserialize_struct("Duration", FIELDS, DurationVisitor)
2102
1.07k
    }
<core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
1968
1.07k
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1969
1.07k
    where
1970
1.07k
        D: Deserializer<'de>,
1971
1.07k
    {
1972
        // If this were outside of the serde crate, it would just use:
1973
        //
1974
        //    #[derive(Deserialize)]
1975
        //    #[serde(field_identifier, rename_all = "lowercase")]
1976
        enum Field {
1977
            Secs,
1978
            Nanos,
1979
        }
1980
1981
        impl<'de> Deserialize<'de> for Field {
1982
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1983
            where
1984
                D: Deserializer<'de>,
1985
            {
1986
                struct FieldVisitor;
1987
1988
                impl<'de> Visitor<'de> for FieldVisitor {
1989
                    type Value = Field;
1990
1991
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1992
                        formatter.write_str("`secs` or `nanos`")
1993
                    }
1994
1995
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1996
                    where
1997
                        E: Error,
1998
                    {
1999
                        match value {
2000
                            "secs" => Ok(Field::Secs),
2001
                            "nanos" => Ok(Field::Nanos),
2002
                            _ => Err(Error::unknown_field(value, FIELDS)),
2003
                        }
2004
                    }
2005
2006
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2007
                    where
2008
                        E: Error,
2009
                    {
2010
                        match value {
2011
                            b"secs" => Ok(Field::Secs),
2012
                            b"nanos" => Ok(Field::Nanos),
2013
                            _ => {
2014
                                let value = ::__private::from_utf8_lossy(value);
2015
                                Err(Error::unknown_field(&value, FIELDS))
2016
                            }
2017
                        }
2018
                    }
2019
                }
2020
2021
                deserializer.deserialize_identifier(FieldVisitor)
2022
            }
2023
        }
2024
2025
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2026
        where
2027
            E: Error,
2028
        {
2029
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2030
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2031
                Some(_) => Ok(()),
2032
                None => Err(E::custom("overflow deserializing Duration")),
2033
            }
2034
        }
2035
2036
        struct DurationVisitor;
2037
2038
        impl<'de> Visitor<'de> for DurationVisitor {
2039
            type Value = Duration;
2040
2041
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2042
                formatter.write_str("struct Duration")
2043
            }
2044
2045
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2046
            where
2047
                A: SeqAccess<'de>,
2048
            {
2049
                let secs: u64 = match try!(seq.next_element()) {
2050
                    Some(value) => value,
2051
                    None => {
2052
                        return Err(Error::invalid_length(0, &self));
2053
                    }
2054
                };
2055
                let nanos: u32 = match try!(seq.next_element()) {
2056
                    Some(value) => value,
2057
                    None => {
2058
                        return Err(Error::invalid_length(1, &self));
2059
                    }
2060
                };
2061
                try!(check_overflow(secs, nanos));
2062
                Ok(Duration::new(secs, nanos))
2063
            }
2064
2065
            fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2066
            where
2067
                A: MapAccess<'de>,
2068
            {
2069
                let mut secs: Option<u64> = None;
2070
                let mut nanos: Option<u32> = None;
2071
                while let Some(key) = try!(map.next_key()) {
2072
                    match key {
2073
                        Field::Secs => {
2074
                            if secs.is_some() {
2075
                                return Err(<A::Error as Error>::duplicate_field("secs"));
2076
                            }
2077
                            secs = Some(try!(map.next_value()));
2078
                        }
2079
                        Field::Nanos => {
2080
                            if nanos.is_some() {
2081
                                return Err(<A::Error as Error>::duplicate_field("nanos"));
2082
                            }
2083
                            nanos = Some(try!(map.next_value()));
2084
                        }
2085
                    }
2086
                }
2087
                let secs = match secs {
2088
                    Some(secs) => secs,
2089
                    None => return Err(<A::Error as Error>::missing_field("secs")),
2090
                };
2091
                let nanos = match nanos {
2092
                    Some(nanos) => nanos,
2093
                    None => return Err(<A::Error as Error>::missing_field("nanos")),
2094
                };
2095
                try!(check_overflow(secs, nanos));
2096
                Ok(Duration::new(secs, nanos))
2097
            }
2098
        }
2099
2100
        const FIELDS: &'static [&'static str] = &["secs", "nanos"];
2101
1.07k
        deserializer.deserialize_struct("Duration", FIELDS, DurationVisitor)
2102
1.07k
    }
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <core::time::Duration as serde::de::Deserialize>::deserialize::<_>
2103
}
2104
2105
////////////////////////////////////////////////////////////////////////////////
2106
2107
#[cfg(feature = "std")]
2108
impl<'de> Deserialize<'de> for SystemTime {
2109
991
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2110
991
    where
2111
991
        D: Deserializer<'de>,
2112
991
    {
2113
        // Reuse duration
2114
        enum Field {
2115
            Secs,
2116
            Nanos,
2117
        }
2118
2119
        impl<'de> Deserialize<'de> for Field {
2120
0
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2121
0
            where
2122
0
                D: Deserializer<'de>,
2123
0
            {
2124
                struct FieldVisitor;
2125
2126
                impl<'de> Visitor<'de> for FieldVisitor {
2127
                    type Value = Field;
2128
2129
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2130
0
                        formatter.write_str("`secs_since_epoch` or `nanos_since_epoch`")
2131
0
                    }
2132
2133
0
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
2134
0
                    where
2135
0
                        E: Error,
2136
0
                    {
2137
0
                        match value {
2138
0
                            "secs_since_epoch" => Ok(Field::Secs),
2139
0
                            "nanos_since_epoch" => Ok(Field::Nanos),
2140
0
                            _ => Err(Error::unknown_field(value, FIELDS)),
2141
                        }
2142
0
                    }
2143
2144
0
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2145
0
                    where
2146
0
                        E: Error,
2147
0
                    {
2148
0
                        match value {
2149
0
                            b"secs_since_epoch" => Ok(Field::Secs),
2150
0
                            b"nanos_since_epoch" => Ok(Field::Nanos),
2151
                            _ => {
2152
0
                                let value = String::from_utf8_lossy(value);
2153
0
                                Err(Error::unknown_field(&value, FIELDS))
2154
                            }
2155
                        }
2156
0
                    }
2157
                }
2158
2159
0
                deserializer.deserialize_identifier(FieldVisitor)
2160
0
            }
2161
        }
2162
2163
929
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2164
929
        where
2165
929
            E: Error,
2166
929
        {
2167
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2168
929
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2169
928
                Some(_) => Ok(()),
2170
1
                None => Err(E::custom("overflow deserializing SystemTime epoch offset")),
2171
            }
2172
929
        }
<std::time::SystemTime as serde::de::Deserialize>::deserialize::check_overflow::<alloc::boxed::Box<bincode::error::ErrorKind>>
Line
Count
Source
2163
929
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2164
929
        where
2165
929
            E: Error,
2166
929
        {
2167
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2168
929
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2169
928
                Some(_) => Ok(()),
2170
1
                None => Err(E::custom("overflow deserializing SystemTime epoch offset")),
2171
            }
2172
929
        }
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::check_overflow::<_>
2173
2174
        struct DurationVisitor;
2175
2176
        impl<'de> Visitor<'de> for DurationVisitor {
2177
            type Value = Duration;
2178
2179
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2180
0
                formatter.write_str("struct SystemTime")
2181
0
            }
2182
2183
991
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2184
991
            where
2185
991
                A: SeqAccess<'de>,
2186
991
            {
2187
991
                let secs: u64 = match try!(seq.next_element()) {
2188
955
                    Some(value) => value,
2189
                    None => {
2190
0
                        return Err(Error::invalid_length(0, &self));
2191
                    }
2192
                };
2193
955
                let nanos: u32 = match try!(seq.next_element()) {
2194
929
                    Some(value) => value,
2195
                    None => {
2196
0
                        return Err(Error::invalid_length(1, &self));
2197
                    }
2198
                };
2199
929
                try!(check_overflow(secs, nanos));
2200
928
                Ok(Duration::new(secs, nanos))
2201
991
            }
<<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
2183
991
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2184
991
            where
2185
991
                A: SeqAccess<'de>,
2186
991
            {
2187
991
                let secs: u64 = match try!(seq.next_element()) {
2188
955
                    Some(value) => value,
2189
                    None => {
2190
0
                        return Err(Error::invalid_length(0, &self));
2191
                    }
2192
                };
2193
955
                let nanos: u32 = match try!(seq.next_element()) {
2194
929
                    Some(value) => value,
2195
                    None => {
2196
0
                        return Err(Error::invalid_length(1, &self));
2197
                    }
2198
                };
2199
929
                try!(check_overflow(secs, nanos));
2200
928
                Ok(Duration::new(secs, nanos))
2201
991
            }
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<<&mut bincode::de::Deserializer<_, _> as serde::de::Deserializer>::deserialize_tuple::Access<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <<std::time::SystemTime as serde::de::Deserialize>::deserialize::DurationVisitor as serde::de::Visitor>::visit_seq::<_>
2202
2203
0
            fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2204
0
            where
2205
0
                A: MapAccess<'de>,
2206
0
            {
2207
0
                let mut secs: Option<u64> = None;
2208
0
                let mut nanos: Option<u32> = None;
2209
0
                while let Some(key) = try!(map.next_key()) {
2210
0
                    match key {
2211
                        Field::Secs => {
2212
0
                            if secs.is_some() {
2213
0
                                return Err(<A::Error as Error>::duplicate_field(
2214
0
                                    "secs_since_epoch",
2215
0
                                ));
2216
0
                            }
2217
0
                            secs = Some(try!(map.next_value()));
2218
                        }
2219
                        Field::Nanos => {
2220
0
                            if nanos.is_some() {
2221
0
                                return Err(<A::Error as Error>::duplicate_field(
2222
0
                                    "nanos_since_epoch",
2223
0
                                ));
2224
0
                            }
2225
0
                            nanos = Some(try!(map.next_value()));
2226
                        }
2227
                    }
2228
                }
2229
0
                let secs = match secs {
2230
0
                    Some(secs) => secs,
2231
0
                    None => return Err(<A::Error as Error>::missing_field("secs_since_epoch")),
2232
                };
2233
0
                let nanos = match nanos {
2234
0
                    Some(nanos) => nanos,
2235
0
                    None => return Err(<A::Error as Error>::missing_field("nanos_since_epoch")),
2236
                };
2237
0
                try!(check_overflow(secs, nanos));
2238
0
                Ok(Duration::new(secs, nanos))
2239
0
            }
2240
        }
2241
2242
        const FIELDS: &'static [&'static str] = &["secs_since_epoch", "nanos_since_epoch"];
2243
991
        let duration = try!(deserializer.deserialize_struct("SystemTime", FIELDS, DurationVisitor));
2244
        #[cfg(not(no_systemtime_checked_add))]
2245
928
        let ret = UNIX_EPOCH
2246
928
            .checked_add(duration)
2247
928
            .ok_or_else(|| D::Error::custom("overflow deserializing SystemTime"));
<std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>::{closure#0}
Line
Count
Source
2247
16
            .ok_or_else(|| D::Error::custom("overflow deserializing SystemTime"));
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>::{closure#0}
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>::{closure#0}
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>::{closure#0}
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>::{closure#0}
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<_>::{closure#0}
2248
928
        #[cfg(no_systemtime_checked_add)]
2249
928
        let ret = Ok(UNIX_EPOCH + duration);
2250
928
        ret
2251
991
    }
<std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::LittleEndian>>>
Line
Count
Source
2109
991
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2110
991
    where
2111
991
        D: Deserializer<'de>,
2112
991
    {
2113
        // Reuse duration
2114
        enum Field {
2115
            Secs,
2116
            Nanos,
2117
        }
2118
2119
        impl<'de> Deserialize<'de> for Field {
2120
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2121
            where
2122
                D: Deserializer<'de>,
2123
            {
2124
                struct FieldVisitor;
2125
2126
                impl<'de> Visitor<'de> for FieldVisitor {
2127
                    type Value = Field;
2128
2129
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2130
                        formatter.write_str("`secs_since_epoch` or `nanos_since_epoch`")
2131
                    }
2132
2133
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
2134
                    where
2135
                        E: Error,
2136
                    {
2137
                        match value {
2138
                            "secs_since_epoch" => Ok(Field::Secs),
2139
                            "nanos_since_epoch" => Ok(Field::Nanos),
2140
                            _ => Err(Error::unknown_field(value, FIELDS)),
2141
                        }
2142
                    }
2143
2144
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2145
                    where
2146
                        E: Error,
2147
                    {
2148
                        match value {
2149
                            b"secs_since_epoch" => Ok(Field::Secs),
2150
                            b"nanos_since_epoch" => Ok(Field::Nanos),
2151
                            _ => {
2152
                                let value = String::from_utf8_lossy(value);
2153
                                Err(Error::unknown_field(&value, FIELDS))
2154
                            }
2155
                        }
2156
                    }
2157
                }
2158
2159
                deserializer.deserialize_identifier(FieldVisitor)
2160
            }
2161
        }
2162
2163
        fn check_overflow<E>(secs: u64, nanos: u32) -> Result<(), E>
2164
        where
2165
            E: Error,
2166
        {
2167
            static NANOS_PER_SEC: u32 = 1_000_000_000;
2168
            match secs.checked_add((nanos / NANOS_PER_SEC) as u64) {
2169
                Some(_) => Ok(()),
2170
                None => Err(E::custom("overflow deserializing SystemTime epoch offset")),
2171
            }
2172
        }
2173
2174
        struct DurationVisitor;
2175
2176
        impl<'de> Visitor<'de> for DurationVisitor {
2177
            type Value = Duration;
2178
2179
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2180
                formatter.write_str("struct SystemTime")
2181
            }
2182
2183
            fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2184
            where
2185
                A: SeqAccess<'de>,
2186
            {
2187
                let secs: u64 = match try!(seq.next_element()) {
2188
                    Some(value) => value,
2189
                    None => {
2190
                        return Err(Error::invalid_length(0, &self));
2191
                    }
2192
                };
2193
                let nanos: u32 = match try!(seq.next_element()) {
2194
                    Some(value) => value,
2195
                    None => {
2196
                        return Err(Error::invalid_length(1, &self));
2197
                    }
2198
                };
2199
                try!(check_overflow(secs, nanos));
2200
                Ok(Duration::new(secs, nanos))
2201
            }
2202
2203
            fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2204
            where
2205
                A: MapAccess<'de>,
2206
            {
2207
                let mut secs: Option<u64> = None;
2208
                let mut nanos: Option<u32> = None;
2209
                while let Some(key) = try!(map.next_key()) {
2210
                    match key {
2211
                        Field::Secs => {
2212
                            if secs.is_some() {
2213
                                return Err(<A::Error as Error>::duplicate_field(
2214
                                    "secs_since_epoch",
2215
                                ));
2216
                            }
2217
                            secs = Some(try!(map.next_value()));
2218
                        }
2219
                        Field::Nanos => {
2220
                            if nanos.is_some() {
2221
                                return Err(<A::Error as Error>::duplicate_field(
2222
                                    "nanos_since_epoch",
2223
                                ));
2224
                            }
2225
                            nanos = Some(try!(map.next_value()));
2226
                        }
2227
                    }
2228
                }
2229
                let secs = match secs {
2230
                    Some(secs) => secs,
2231
                    None => return Err(<A::Error as Error>::missing_field("secs_since_epoch")),
2232
                };
2233
                let nanos = match nanos {
2234
                    Some(nanos) => nanos,
2235
                    None => return Err(<A::Error as Error>::missing_field("nanos_since_epoch")),
2236
                };
2237
                try!(check_overflow(secs, nanos));
2238
                Ok(Duration::new(secs, nanos))
2239
            }
2240
        }
2241
2242
        const FIELDS: &'static [&'static str] = &["secs_since_epoch", "nanos_since_epoch"];
2243
991
        let duration = try!(deserializer.deserialize_struct("SystemTime", FIELDS, DurationVisitor));
2244
        #[cfg(not(no_systemtime_checked_add))]
2245
928
        let ret = UNIX_EPOCH
2246
928
            .checked_add(duration)
2247
928
            .ok_or_else(|| D::Error::custom("overflow deserializing SystemTime"));
2248
928
        #[cfg(no_systemtime_checked_add)]
2249
928
        let ret = Ok(UNIX_EPOCH + duration);
2250
928
        ret
2251
991
    }
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Bounded>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::LittleEndian>>>
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::NativeEndian>>>
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<&mut bincode::de::Deserializer<bincode::de::read::IoReader<&[u8]>, bincode::config::WithOtherEndian<bincode::config::WithOtherLimit<bincode::config::WithOtherTrailing<bincode::config::WithOtherIntEncoding<bincode::config::DefaultOptions, bincode::config::int::FixintEncoding>, bincode::config::trailing::AllowTrailing>, bincode::config::limit::Infinite>, bincode::config::endian::BigEndian>>>
Unexecuted instantiation: <std::time::SystemTime as serde::de::Deserialize>::deserialize::<_>
2252
}
2253
2254
////////////////////////////////////////////////////////////////////////////////
2255
2256
// Similar to:
2257
//
2258
//     #[derive(Deserialize)]
2259
//     #[serde(deny_unknown_fields)]
2260
//     struct Range {
2261
//         start: u64,
2262
//         end: u32,
2263
//     }
2264
impl<'de, Idx> Deserialize<'de> for Range<Idx>
2265
where
2266
    Idx: Deserialize<'de>,
2267
{
2268
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2269
0
    where
2270
0
        D: Deserializer<'de>,
2271
0
    {
2272
0
        let (start, end) = deserializer.deserialize_struct(
2273
0
            "Range",
2274
0
            range::FIELDS,
2275
0
            range::RangeVisitor {
2276
0
                expecting: "struct Range",
2277
0
                phantom: PhantomData,
2278
0
            },
2279
0
        )?;
2280
0
        Ok(start..end)
2281
0
    }
2282
}
2283
2284
#[cfg(not(no_range_inclusive))]
2285
impl<'de, Idx> Deserialize<'de> for RangeInclusive<Idx>
2286
where
2287
    Idx: Deserialize<'de>,
2288
{
2289
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2290
0
    where
2291
0
        D: Deserializer<'de>,
2292
0
    {
2293
0
        let (start, end) = deserializer.deserialize_struct(
2294
0
            "RangeInclusive",
2295
0
            range::FIELDS,
2296
0
            range::RangeVisitor {
2297
0
                expecting: "struct RangeInclusive",
2298
0
                phantom: PhantomData,
2299
0
            },
2300
0
        )?;
2301
0
        Ok(RangeInclusive::new(start, end))
2302
0
    }
2303
}
2304
2305
mod range {
2306
    use lib::*;
2307
2308
    use de::{Deserialize, Deserializer, Error, MapAccess, SeqAccess, Visitor};
2309
2310
    pub const FIELDS: &'static [&'static str] = &["start", "end"];
2311
2312
    // If this were outside of the serde crate, it would just use:
2313
    //
2314
    //    #[derive(Deserialize)]
2315
    //    #[serde(field_identifier, rename_all = "lowercase")]
2316
    enum Field {
2317
        Start,
2318
        End,
2319
    }
2320
2321
    impl<'de> Deserialize<'de> for Field {
2322
0
        fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2323
0
        where
2324
0
            D: Deserializer<'de>,
2325
0
        {
2326
            struct FieldVisitor;
2327
2328
            impl<'de> Visitor<'de> for FieldVisitor {
2329
                type Value = Field;
2330
2331
0
                fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2332
0
                    formatter.write_str("`start` or `end`")
2333
0
                }
2334
2335
0
                fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
2336
0
                where
2337
0
                    E: Error,
2338
0
                {
2339
0
                    match value {
2340
0
                        "start" => Ok(Field::Start),
2341
0
                        "end" => Ok(Field::End),
2342
0
                        _ => Err(Error::unknown_field(value, FIELDS)),
2343
                    }
2344
0
                }
2345
2346
0
                fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2347
0
                where
2348
0
                    E: Error,
2349
0
                {
2350
0
                    match value {
2351
0
                        b"start" => Ok(Field::Start),
2352
0
                        b"end" => Ok(Field::End),
2353
                        _ => {
2354
0
                            let value = ::__private::from_utf8_lossy(value);
2355
0
                            Err(Error::unknown_field(&value, FIELDS))
2356
                        }
2357
                    }
2358
0
                }
2359
            }
2360
2361
0
            deserializer.deserialize_identifier(FieldVisitor)
2362
0
        }
2363
    }
2364
2365
    pub struct RangeVisitor<Idx> {
2366
        pub expecting: &'static str,
2367
        pub phantom: PhantomData<Idx>,
2368
    }
2369
2370
    impl<'de, Idx> Visitor<'de> for RangeVisitor<Idx>
2371
    where
2372
        Idx: Deserialize<'de>,
2373
    {
2374
        type Value = (Idx, Idx);
2375
2376
0
        fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2377
0
            formatter.write_str(self.expecting)
2378
0
        }
2379
2380
0
        fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
2381
0
        where
2382
0
            A: SeqAccess<'de>,
2383
0
        {
2384
0
            let start: Idx = match try!(seq.next_element()) {
2385
0
                Some(value) => value,
2386
                None => {
2387
0
                    return Err(Error::invalid_length(0, &self));
2388
                }
2389
            };
2390
0
            let end: Idx = match try!(seq.next_element()) {
2391
0
                Some(value) => value,
2392
                None => {
2393
0
                    return Err(Error::invalid_length(1, &self));
2394
                }
2395
            };
2396
0
            Ok((start, end))
2397
0
        }
2398
2399
0
        fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2400
0
        where
2401
0
            A: MapAccess<'de>,
2402
0
        {
2403
0
            let mut start: Option<Idx> = None;
2404
0
            let mut end: Option<Idx> = None;
2405
0
            while let Some(key) = try!(map.next_key()) {
2406
0
                match key {
2407
                    Field::Start => {
2408
0
                        if start.is_some() {
2409
0
                            return Err(<A::Error as Error>::duplicate_field("start"));
2410
0
                        }
2411
0
                        start = Some(try!(map.next_value()));
2412
                    }
2413
                    Field::End => {
2414
0
                        if end.is_some() {
2415
0
                            return Err(<A::Error as Error>::duplicate_field("end"));
2416
0
                        }
2417
0
                        end = Some(try!(map.next_value()));
2418
                    }
2419
                }
2420
            }
2421
0
            let start = match start {
2422
0
                Some(start) => start,
2423
0
                None => return Err(<A::Error as Error>::missing_field("start")),
2424
            };
2425
0
            let end = match end {
2426
0
                Some(end) => end,
2427
0
                None => return Err(<A::Error as Error>::missing_field("end")),
2428
            };
2429
0
            Ok((start, end))
2430
0
        }
2431
    }
2432
}
2433
2434
////////////////////////////////////////////////////////////////////////////////
2435
2436
#[cfg(any(not(no_ops_bound), all(feature = "std", not(no_collections_bound))))]
2437
impl<'de, T> Deserialize<'de> for Bound<T>
2438
where
2439
    T: Deserialize<'de>,
2440
{
2441
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2442
0
    where
2443
0
        D: Deserializer<'de>,
2444
0
    {
2445
        enum Field {
2446
            Unbounded,
2447
            Included,
2448
            Excluded,
2449
        }
2450
2451
        impl<'de> Deserialize<'de> for Field {
2452
            #[inline]
2453
0
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2454
0
            where
2455
0
                D: Deserializer<'de>,
2456
0
            {
2457
                struct FieldVisitor;
2458
2459
                impl<'de> Visitor<'de> for FieldVisitor {
2460
                    type Value = Field;
2461
2462
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2463
0
                        formatter.write_str("`Unbounded`, `Included` or `Excluded`")
2464
0
                    }
2465
2466
0
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
2467
0
                    where
2468
0
                        E: Error,
2469
0
                    {
2470
0
                        match value {
2471
0
                            0 => Ok(Field::Unbounded),
2472
0
                            1 => Ok(Field::Included),
2473
0
                            2 => Ok(Field::Excluded),
2474
0
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self)),
2475
                        }
2476
0
                    }
2477
2478
0
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
2479
0
                    where
2480
0
                        E: Error,
2481
0
                    {
2482
0
                        match value {
2483
0
                            "Unbounded" => Ok(Field::Unbounded),
2484
0
                            "Included" => Ok(Field::Included),
2485
0
                            "Excluded" => Ok(Field::Excluded),
2486
0
                            _ => Err(Error::unknown_variant(value, VARIANTS)),
2487
                        }
2488
0
                    }
2489
2490
0
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2491
0
                    where
2492
0
                        E: Error,
2493
0
                    {
2494
0
                        match value {
2495
0
                            b"Unbounded" => Ok(Field::Unbounded),
2496
0
                            b"Included" => Ok(Field::Included),
2497
0
                            b"Excluded" => Ok(Field::Excluded),
2498
0
                            _ => match str::from_utf8(value) {
2499
0
                                Ok(value) => Err(Error::unknown_variant(value, VARIANTS)),
2500
                                Err(_) => {
2501
0
                                    Err(Error::invalid_value(Unexpected::Bytes(value), &self))
2502
                                }
2503
                            },
2504
                        }
2505
0
                    }
2506
                }
2507
2508
0
                deserializer.deserialize_identifier(FieldVisitor)
2509
0
            }
2510
        }
2511
2512
        struct BoundVisitor<T>(PhantomData<Bound<T>>);
2513
2514
        impl<'de, T> Visitor<'de> for BoundVisitor<T>
2515
        where
2516
            T: Deserialize<'de>,
2517
        {
2518
            type Value = Bound<T>;
2519
2520
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2521
0
                formatter.write_str("enum Bound")
2522
0
            }
2523
2524
0
            fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
2525
0
            where
2526
0
                A: EnumAccess<'de>,
2527
0
            {
2528
0
                match try!(data.variant()) {
2529
0
                    (Field::Unbounded, v) => v.unit_variant().map(|()| Bound::Unbounded),
2530
0
                    (Field::Included, v) => v.newtype_variant().map(Bound::Included),
2531
0
                    (Field::Excluded, v) => v.newtype_variant().map(Bound::Excluded),
2532
                }
2533
0
            }
2534
        }
2535
2536
        const VARIANTS: &'static [&'static str] = &["Unbounded", "Included", "Excluded"];
2537
2538
0
        deserializer.deserialize_enum("Bound", VARIANTS, BoundVisitor(PhantomData))
2539
0
    }
2540
}
2541
2542
////////////////////////////////////////////////////////////////////////////////
2543
2544
impl<'de, T, E> Deserialize<'de> for Result<T, E>
2545
where
2546
    T: Deserialize<'de>,
2547
    E: Deserialize<'de>,
2548
{
2549
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2550
0
    where
2551
0
        D: Deserializer<'de>,
2552
0
    {
2553
        // If this were outside of the serde crate, it would just use:
2554
        //
2555
        //    #[derive(Deserialize)]
2556
        //    #[serde(variant_identifier)]
2557
        enum Field {
2558
            Ok,
2559
            Err,
2560
        }
2561
2562
        impl<'de> Deserialize<'de> for Field {
2563
            #[inline]
2564
0
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2565
0
            where
2566
0
                D: Deserializer<'de>,
2567
0
            {
2568
                struct FieldVisitor;
2569
2570
                impl<'de> Visitor<'de> for FieldVisitor {
2571
                    type Value = Field;
2572
2573
0
                    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2574
0
                        formatter.write_str("`Ok` or `Err`")
2575
0
                    }
2576
2577
0
                    fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E>
2578
0
                    where
2579
0
                        E: Error,
2580
0
                    {
2581
0
                        match value {
2582
0
                            0 => Ok(Field::Ok),
2583
0
                            1 => Ok(Field::Err),
2584
0
                            _ => Err(Error::invalid_value(Unexpected::Unsigned(value), &self)),
2585
                        }
2586
0
                    }
2587
2588
0
                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
2589
0
                    where
2590
0
                        E: Error,
2591
0
                    {
2592
0
                        match value {
2593
0
                            "Ok" => Ok(Field::Ok),
2594
0
                            "Err" => Ok(Field::Err),
2595
0
                            _ => Err(Error::unknown_variant(value, VARIANTS)),
2596
                        }
2597
0
                    }
2598
2599
0
                    fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
2600
0
                    where
2601
0
                        E: Error,
2602
0
                    {
2603
0
                        match value {
2604
0
                            b"Ok" => Ok(Field::Ok),
2605
0
                            b"Err" => Ok(Field::Err),
2606
0
                            _ => match str::from_utf8(value) {
2607
0
                                Ok(value) => Err(Error::unknown_variant(value, VARIANTS)),
2608
                                Err(_) => {
2609
0
                                    Err(Error::invalid_value(Unexpected::Bytes(value), &self))
2610
                                }
2611
                            },
2612
                        }
2613
0
                    }
2614
                }
2615
2616
0
                deserializer.deserialize_identifier(FieldVisitor)
2617
0
            }
2618
        }
2619
2620
        struct ResultVisitor<T, E>(PhantomData<Result<T, E>>);
2621
2622
        impl<'de, T, E> Visitor<'de> for ResultVisitor<T, E>
2623
        where
2624
            T: Deserialize<'de>,
2625
            E: Deserialize<'de>,
2626
        {
2627
            type Value = Result<T, E>;
2628
2629
0
            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2630
0
                formatter.write_str("enum Result")
2631
0
            }
2632
2633
0
            fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
2634
0
            where
2635
0
                A: EnumAccess<'de>,
2636
0
            {
2637
0
                match try!(data.variant()) {
2638
0
                    (Field::Ok, v) => v.newtype_variant().map(Ok),
2639
0
                    (Field::Err, v) => v.newtype_variant().map(Err),
2640
                }
2641
0
            }
2642
        }
2643
2644
        const VARIANTS: &'static [&'static str] = &["Ok", "Err"];
2645
2646
0
        deserializer.deserialize_enum("Result", VARIANTS, ResultVisitor(PhantomData))
2647
0
    }
2648
}
2649
2650
////////////////////////////////////////////////////////////////////////////////
2651
2652
impl<'de, T> Deserialize<'de> for Wrapping<T>
2653
where
2654
    T: Deserialize<'de>,
2655
{
2656
0
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2657
0
    where
2658
0
        D: Deserializer<'de>,
2659
0
    {
2660
0
        Deserialize::deserialize(deserializer).map(Wrapping)
2661
0
    }
2662
}
2663
2664
#[cfg(all(feature = "std", not(no_std_atomic)))]
2665
macro_rules! atomic_impl {
2666
    ($($ty:ident)*) => {
2667
        $(
2668
            impl<'de> Deserialize<'de> for $ty {
2669
0
                fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2670
0
                where
2671
0
                    D: Deserializer<'de>,
2672
0
                {
2673
0
                    Deserialize::deserialize(deserializer).map(Self::new)
2674
0
                }
Unexecuted instantiation: <core::sync::atomic::AtomicBool as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicI8 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicI16 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicI32 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicIsize as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicU8 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicU16 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicU32 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicUsize as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicI64 as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <core::sync::atomic::AtomicU64 as serde::de::Deserialize>::deserialize::<_>
2675
            }
2676
        )*
2677
    };
2678
}
2679
2680
#[cfg(all(feature = "std", not(no_std_atomic)))]
2681
atomic_impl! {
2682
    AtomicBool
2683
    AtomicI8 AtomicI16 AtomicI32 AtomicIsize
2684
    AtomicU8 AtomicU16 AtomicU32 AtomicUsize
2685
}
2686
2687
#[cfg(all(feature = "std", not(no_std_atomic64)))]
2688
atomic_impl! {
2689
    AtomicI64 AtomicU64
2690
}
2691
2692
#[cfg(feature = "std")]
2693
struct FromStrVisitor<T> {
2694
    expecting: &'static str,
2695
    ty: PhantomData<T>,
2696
}
2697
2698
#[cfg(feature = "std")]
2699
impl<T> FromStrVisitor<T> {
2700
0
    fn new(expecting: &'static str) -> Self {
2701
0
        FromStrVisitor {
2702
0
            expecting: expecting,
2703
0
            ty: PhantomData,
2704
0
        }
2705
0
    }
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddr>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddrV4>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddrV6>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::IpAddr>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::Ipv4Addr>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::Ipv6Addr>>::new
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<_>>::new
2706
}
2707
2708
#[cfg(feature = "std")]
2709
impl<'de, T> Visitor<'de> for FromStrVisitor<T>
2710
where
2711
    T: str::FromStr,
2712
    T::Err: fmt::Display,
2713
{
2714
    type Value = T;
2715
2716
0
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2717
0
        formatter.write_str(self.expecting)
2718
0
    }
2719
2720
0
    fn visit_str<E>(self, s: &str) -> Result<Self::Value, E>
2721
0
    where
2722
0
        E: Error,
2723
0
    {
2724
0
        s.parse().map_err(Error::custom)
2725
0
    }
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddr> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddrV4> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::socket_addr::SocketAddrV6> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::IpAddr> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::Ipv4Addr> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<core::net::ip_addr::Ipv6Addr> as serde::de::Visitor>::visit_str::<alloc::boxed::Box<bincode::error::ErrorKind>>
Unexecuted instantiation: <serde::de::impls::FromStrVisitor<_> as serde::de::Visitor>::visit_str::<_>
2726
}