1use serde::de::{self, Visitor};
2
3use super::{Error, Result};
4
5pub struct Deserializer<'a, 'b: 'a> {
6 de: &'a mut super::Deserializer<'b>,
7}
8
9impl<'a, 'b: 'a> Deserializer<'a, 'b> {
10 pub fn new(de: &'a mut super::Deserializer<'b>) -> Self {
11 Deserializer { de }
12 }
13}
14
15impl<'a, 'b: 'a, 'c> de::Deserializer<'b> for &'c mut Deserializer<'a, 'b> {
16 type Error = Error;
17
18 fn deserialize_str<V>(self, visitor: V) -> Result<V::Value>
19 where
20 V: Visitor<'b>,
21 {
22 self.de.deserialize_str(visitor)
23 }
24
25 fn deserialize_string<V>(self, visitor: V) -> std::result::Result<V::Value, Self::Error>
26 where
27 V: Visitor<'b>,
28 {
29 self.deserialize_str(visitor)
30 }
31
32 fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>
33 where
34 V: Visitor<'b>,
35 {
36 self.deserialize_str(visitor)
37 }
38
39 fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>
40 where
41 V: Visitor<'b>,
42 {
43 self.deserialize_str(visitor)
44 }
45
46 fn deserialize_bool<V>(self, _visitor: V) -> Result<V::Value>
47 where
48 V: Visitor<'b>,
49 {
50 Err(Error::ExpectedString)
51 }
52
53 fn deserialize_i8<V>(self, _visitor: V) -> Result<V::Value>
54 where
55 V: Visitor<'b>,
56 {
57 Err(Error::ExpectedString)
58 }
59
60 fn deserialize_i16<V>(self, _visitor: V) -> Result<V::Value>
61 where
62 V: Visitor<'b>,
63 {
64 Err(Error::ExpectedString)
65 }
66
67 fn deserialize_i32<V>(self, _visitor: V) -> Result<V::Value>
68 where
69 V: Visitor<'b>,
70 {
71 Err(Error::ExpectedString)
72 }
73
74 fn deserialize_i64<V>(self, _visitor: V) -> Result<V::Value>
75 where
76 V: Visitor<'b>,
77 {
78 Err(Error::ExpectedString)
79 }
80
81 #[cfg(feature = "integer128")]
82 fn deserialize_i128<V>(self, _visitor: V) -> Result<V::Value>
83 where
84 V: Visitor<'b>,
85 {
86 Err(Error::ExpectedString)
87 }
88
89 fn deserialize_u8<V>(self, _visitor: V) -> Result<V::Value>
90 where
91 V: Visitor<'b>,
92 {
93 Err(Error::ExpectedString)
94 }
95
96 fn deserialize_u16<V>(self, _visitor: V) -> Result<V::Value>
97 where
98 V: Visitor<'b>,
99 {
100 Err(Error::ExpectedString)
101 }
102
103 fn deserialize_u32<V>(self, _visitor: V) -> Result<V::Value>
104 where
105 V: Visitor<'b>,
106 {
107 Err(Error::ExpectedString)
108 }
109
110 fn deserialize_u64<V>(self, _visitor: V) -> Result<V::Value>
111 where
112 V: Visitor<'b>,
113 {
114 Err(Error::ExpectedString)
115 }
116
117 #[cfg(feature = "integer128")]
118 fn deserialize_u128<V>(self, _visitor: V) -> Result<V::Value>
119 where
120 V: Visitor<'b>,
121 {
122 Err(Error::ExpectedString)
123 }
124
125 fn deserialize_f32<V>(self, _visitor: V) -> Result<V::Value>
126 where
127 V: Visitor<'b>,
128 {
129 Err(Error::ExpectedString)
130 }
131
132 fn deserialize_f64<V>(self, _visitor: V) -> Result<V::Value>
133 where
134 V: Visitor<'b>,
135 {
136 Err(Error::ExpectedString)
137 }
138
139 fn deserialize_char<V>(self, _visitor: V) -> Result<V::Value>
140 where
141 V: Visitor<'b>,
142 {
143 Err(Error::ExpectedString)
144 }
145
146 fn deserialize_bytes<V>(self, _visitor: V) -> Result<V::Value>
147 where
148 V: Visitor<'b>,
149 {
150 Err(Error::ExpectedString)
151 }
152
153 fn deserialize_byte_buf<V>(self, _visitor: V) -> Result<V::Value>
154 where
155 V: Visitor<'b>,
156 {
157 Err(Error::ExpectedString)
158 }
159
160 fn deserialize_option<V>(self, _visitor: V) -> Result<V::Value>
161 where
162 V: Visitor<'b>,
163 {
164 Err(Error::ExpectedString)
165 }
166
167 fn deserialize_unit<V>(self, _visitor: V) -> Result<V::Value>
168 where
169 V: Visitor<'b>,
170 {
171 Err(Error::ExpectedString)
172 }
173
174 fn deserialize_unit_struct<V>(self, _name: &'static str, _visitor: V) -> Result<V::Value>
175 where
176 V: Visitor<'b>,
177 {
178 Err(Error::ExpectedString)
179 }
180
181 fn deserialize_newtype_struct<V>(self, _name: &'static str, _visitor: V) -> Result<V::Value>
182 where
183 V: Visitor<'b>,
184 {
185 Err(Error::ExpectedString)
186 }
187
188 fn deserialize_seq<V>(self, _visitor: V) -> Result<V::Value>
189 where
190 V: Visitor<'b>,
191 {
192 Err(Error::ExpectedString)
193 }
194
195 fn deserialize_tuple<V>(self, _len: usize, _visitor: V) -> Result<V::Value>
196 where
197 V: Visitor<'b>,
198 {
199 Err(Error::ExpectedString)
200 }
201
202 fn deserialize_tuple_struct<V>(
203 self,
204 _name: &'static str,
205 _len: usize,
206 _visitor: V,
207 ) -> Result<V::Value>
208 where
209 V: Visitor<'b>,
210 {
211 Err(Error::ExpectedString)
212 }
213
214 fn deserialize_map<V>(self, _visitor: V) -> Result<V::Value>
215 where
216 V: Visitor<'b>,
217 {
218 Err(Error::ExpectedString)
219 }
220
221 fn deserialize_struct<V>(
222 self,
223 _name: &'static str,
224 _fields: &'static [&'static str],
225 _visitor: V,
226 ) -> Result<V::Value>
227 where
228 V: Visitor<'b>,
229 {
230 Err(Error::ExpectedString)
231 }
232
233 fn deserialize_enum<V>(
234 self,
235 _name: &'static str,
236 _variants: &'static [&'static str],
237 _visitor: V,
238 ) -> Result<V::Value>
239 where
240 V: Visitor<'b>,
241 {
242 Err(Error::ExpectedString)
243 }
244
245 fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value>
246 where
247 V: Visitor<'b>,
248 {
249 self.deserialize_any(visitor)
250 }
251}