From 071affd963ed88bfdcede6aa7b20626d3cf0f368 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Mon, 22 May 2017 23:09:29 +0100 Subject: Revert "Stop LevelDeserializer from coercing values too early." This reverts commit 6429b975c6cbcf5d7e0c2b1d02026f8d46b5c50f. --- src/de/mod.rs | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) (limited to 'src/de') diff --git a/src/de/mod.rs b/src/de/mod.rs index 83a15be..cf32c5e 100644 --- a/src/de/mod.rs +++ b/src/de/mod.rs @@ -479,9 +479,10 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer { }, Level::Sequence(_) => { self.deserialize_seq(visitor) + }, Level::Flat(x) => { - ParsableStringDeserializer(x).deserialize_any(visitor) + visitor.visit_string(x) }, Level::Invalid(e) => { Err(de::Error::custom(e)) @@ -566,17 +567,7 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer { ) -> Result where V: de::Visitor<'de> { - match self.0 { - Level::Nested(_) => { - self.deserialize_map(visitor) - }, - Level::Sequence(_) | Level::Flat(_) => { - self.deserialize_seq(visitor) - }, - Level::Invalid(e) => { - Err(de::Error::custom(e)) - } - } + self.deserialize_seq(visitor) } fn deserialize_tuple( @@ -586,17 +577,7 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer { ) -> Result where V: de::Visitor<'de> { - match self.0 { - Level::Nested(_) => { - self.deserialize_map(visitor) - }, - Level::Sequence(_) | Level::Flat(_) => { - self.deserialize_seq(visitor) - }, - Level::Invalid(e) => { - Err(de::Error::custom(e)) - } - } + self.deserialize_seq(visitor) } fn deserialize_tuple_struct( self, @@ -606,17 +587,8 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer { ) -> Result where V: de::Visitor<'de> { - match self.0 { - Level::Nested(_) => { - self.deserialize_map(visitor) - }, - Level::Sequence(_) | Level::Flat(_) => { - self.deserialize_seq(visitor) - }, - Level::Invalid(e) => { - Err(de::Error::custom(e)) - } - } } + self.deserialize_seq(visitor) + } fn deserialize_bytes(self, visitor: V) -> Result where V: de::Visitor<'de> @@ -706,6 +678,7 @@ impl<'de> de::Deserializer<'de> for ParsableStringDeserializer { self.0.into_deserializer().deserialize_any(visitor) } + forward_to_deserialize_any! { map struct -- cgit v1.2.3