feat(de): Support hinting for IgnoredAny

IgnoredAny was calling `deserializer.deserialize` directly which is
guaranteed to Error for certain formats like redis and bincode. This
adds a `deserialize_ignored_any` method to hint to such implementations.
This commit is contained in:
Joe Wilm 2016-01-28 11:49:36 -08:00
parent 9ae47a261e
commit b0bc8e3594
2 changed files with 11 additions and 1 deletions

View File

@ -1004,7 +1004,8 @@ impl Deserialize for IgnoredAny {
}
}
deserializer.deserialize(IgnoredAnyVisitor)
// TODO maybe not necessary with impl specialization
deserializer.deserialize_ignored_any(IgnoredAnyVisitor)
}
}

View File

@ -416,6 +416,15 @@ pub trait Deserializer {
self.deserialize(visitor)
}
/// This method hints that the `Deserialize` type needs to deserialize a value whose type
/// doesn't matter because it is ignored.
#[inline]
fn deserialize_ignored_any<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error>
where V: Visitor
{
self.deserialize(visitor)
}
/// Specify a format string for the deserializer.
///
/// The deserializer format is used to determine which format