Skip to content

Commit d65eeb9

Browse files
committed
Forward seq and map deserialization to deserialize_any
- Remove duplicated code
1 parent 5bf9f35 commit d65eeb9

File tree

1 file changed

+2
-55
lines changed

1 file changed

+2
-55
lines changed

src/de.rs

Lines changed: 2 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,8 @@ impl<'de, R: Read<'de>> de::Deserializer<'de> for &mut Deserializer<R> {
320320

321321
char str string
322322

323+
seq tuple tuple_struct map
324+
323325
struct enum identifier ignored_any
324326
}
325327

@@ -398,61 +400,6 @@ impl<'de, R: Read<'de>> de::Deserializer<'de> for &mut Deserializer<R> {
398400
visitor.visit_newtype_struct(self)
399401
}
400402

401-
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value>
402-
where
403-
V: de::Visitor<'de>,
404-
{
405-
match self.parse_peek()? {
406-
b'l' => {
407-
self.parse_next()?;
408-
let ret = visitor.visit_seq(SeqAccess { de: self });
409-
match (ret, self.on_end_seq()) {
410-
(Ok(ret), Ok(())) => Ok(ret),
411-
(Err(err), _) | (_, Err(err)) => Err(err),
412-
}
413-
}
414-
_ => Err(self.unexpected_type_err(&visitor)?),
415-
}
416-
}
417-
418-
#[inline]
419-
fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value>
420-
where
421-
V: de::Visitor<'de>,
422-
{
423-
self.deserialize_seq(visitor)
424-
}
425-
426-
#[inline]
427-
fn deserialize_tuple_struct<V>(
428-
self,
429-
_name: &'static str,
430-
_len: usize,
431-
visitor: V,
432-
) -> Result<V::Value>
433-
where
434-
V: de::Visitor<'de>,
435-
{
436-
self.deserialize_seq(visitor)
437-
}
438-
439-
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value>
440-
where
441-
V: de::Visitor<'de>,
442-
{
443-
match self.parse_peek()? {
444-
b'd' => {
445-
self.parse_next()?;
446-
let ret = visitor.visit_map(MapAccess { de: self });
447-
match (ret, self.on_end_map()) {
448-
(Ok(ret), Ok(())) => Ok(ret),
449-
(Err(err), _) | (_, Err(err)) => Err(err),
450-
}
451-
}
452-
_ => Err(self.unexpected_type_err(&visitor)?),
453-
}
454-
}
455-
456403
#[inline]
457404
fn is_human_readable(&self) -> bool {
458405
false

0 commit comments

Comments
 (0)