diff --git a/serde/src/de/ignored_any.rs b/serde/src/de/ignored_any.rs index 855d68e1..a86e604d 100644 --- a/serde/src/de/ignored_any.rs +++ b/serde/src/de/ignored_any.rs @@ -1,6 +1,8 @@ use lib::*; -use de::{Deserialize, Deserializer, Error, MapAccess, SeqAccess, Visitor}; +use de::{ + Deserialize, Deserializer, EnumAccess, Error, MapAccess, SeqAccess, VariantAccess, Visitor, +}; /// An efficient way of discarding data from a deserializer. /// @@ -205,6 +207,14 @@ impl<'de> Visitor<'de> for IgnoredAny { let _ = bytes; Ok(IgnoredAny) } + + fn visit_enum(self, data: A) -> Result + where + A: EnumAccess<'de>, + { + let (IgnoredAny, content) = data.variant()?; + content.newtype_variant() + } } impl<'de> Deserialize<'de> for IgnoredAny {