summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authorSam Scott <sam.scott89@gmail.com>2017-05-22 23:09:29 +0100
committerSam Scott <sam.scott89@gmail.com>2017-05-22 23:09:29 +0100
commit071affd963ed88bfdcede6aa7b20626d3cf0f368 (patch)
tree8b598e71de34bbd138117904660171024d1f3330 /src/de
parentfa0c28ec545fea48c31d38989fdf8e35afc10f83 (diff)
Revert "Stop LevelDeserializer from coercing values too early."
This reverts commit 6429b975c6cbcf5d7e0c2b1d02026f8d46b5c50f.
Diffstat (limited to 'src/de')
-rw-r--r--src/de/mod.rs41
1 files changed, 7 insertions, 34 deletions
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<V::Value>
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<V>(
@@ -586,17 +577,7 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer {
) -> Result<V::Value>
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<V>(
self,
@@ -606,17 +587,8 @@ impl<'de> de::Deserializer<'de> for LevelDeserializer {
) -> Result<V::Value>
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<V>(self, visitor: V) -> Result<V::Value>
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