diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index d9382bc6..67f1d947 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -1246,6 +1246,9 @@ mod content { Some(Content::Map(v)) => { de::Deserializer::deserialize_any(MapDeserializer::new(v), visitor) } + Some(Content::Seq(v)) => { + de::Deserializer::deserialize_any(SeqDeserializer::new(v), visitor) + } Some(other) => Err(de::Error::invalid_type(other.unexpected(), &"struct variant"),), _ => Err(de::Error::invalid_type(de::Unexpected::UnitVariant, &"struct variant"),), } @@ -1640,6 +1643,9 @@ mod content { Some(&Content::Map(ref v)) => { de::Deserializer::deserialize_any(MapRefDeserializer::new(v), visitor) } + Some(&Content::Seq(ref v)) => { + de::Deserializer::deserialize_any(SeqRefDeserializer::new(v), visitor) + } Some(other) => Err(de::Error::invalid_type(other.unexpected(), &"struct variant"),), _ => Err(de::Error::invalid_type(de::Unexpected::UnitVariant, &"struct variant"),), }