pub trait MapVisitor {
type Error: Error;
// Required methods
fn visit_key_seed<K>(
&mut self,
seed: K,
) -> Result<Option<<K as DeserializeSeed>::Value>, Self::Error>
where K: DeserializeSeed;
fn visit_value_seed<V>(
&mut self,
seed: V,
) -> Result<<V as DeserializeSeed>::Value, Self::Error>
where V: DeserializeSeed;
// Provided methods
fn visit_seed<K, V>(
&mut self,
kseed: K,
vseed: V,
) -> Result<Option<(<K as DeserializeSeed>::Value, <V as DeserializeSeed>::Value)>, Self::Error>
where K: DeserializeSeed,
V: DeserializeSeed { ... }
fn visit_key<K>(&mut self) -> Result<Option<K>, Self::Error>
where K: Deserialize { ... }
fn visit_value<V>(&mut self) -> Result<V, Self::Error>
where V: Deserialize { ... }
fn visit<K, V>(&mut self) -> Result<Option<(K, V)>, Self::Error>
where K: Deserialize,
V: Deserialize { ... }
fn size_hint(&self) -> (usize, Option<usize>) { ... }
}Expand description
MapVisitor visits each item in a sequence.
This is a trait that a Deserializer passes to a Visitor implementation.
Required Associated Types§
Required Methods§
Sourcefn visit_key_seed<K>(
&mut self,
seed: K,
) -> Result<Option<<K as DeserializeSeed>::Value>, Self::Error>where
K: DeserializeSeed,
fn visit_key_seed<K>(
&mut self,
seed: K,
) -> Result<Option<<K as DeserializeSeed>::Value>, Self::Error>where
K: DeserializeSeed,
This returns Ok(Some(key)) for the next key in the map, or Ok(None)
if there are no more remaining entries.
Deserialize implementations should typically use
MapVisitor::visit_key or MapVisitor::visit instead.
Sourcefn visit_value_seed<V>(
&mut self,
seed: V,
) -> Result<<V as DeserializeSeed>::Value, Self::Error>where
V: DeserializeSeed,
fn visit_value_seed<V>(
&mut self,
seed: V,
) -> Result<<V as DeserializeSeed>::Value, Self::Error>where
V: DeserializeSeed,
This returns a Ok(value) for the next value in the map.
Deserialize implementations should typically use
MapVisitor::visit_value instead.
Provided Methods§
Sourcefn visit_seed<K, V>(
&mut self,
kseed: K,
vseed: V,
) -> Result<Option<(<K as DeserializeSeed>::Value, <V as DeserializeSeed>::Value)>, Self::Error>where
K: DeserializeSeed,
V: DeserializeSeed,
fn visit_seed<K, V>(
&mut self,
kseed: K,
vseed: V,
) -> Result<Option<(<K as DeserializeSeed>::Value, <V as DeserializeSeed>::Value)>, Self::Error>where
K: DeserializeSeed,
V: DeserializeSeed,
This returns Ok(Some((key, value))) for the next (key-value) pair in
the map, or Ok(None) if there are no more remaining items.
MapVisitor implementations should override the default behavior if a
more efficient implementation is possible.
Deserialize implementations should typically use MapVisitor::visit
instead.
Sourcefn visit_key<K>(&mut self) -> Result<Option<K>, Self::Error>where
K: Deserialize,
fn visit_key<K>(&mut self) -> Result<Option<K>, Self::Error>where
K: Deserialize,
This returns Ok(Some(key)) for the next key in the map, or Ok(None)
if there are no more remaining entries.
This method exists as a convenience for Deserialize implementations.
MapVisitor implementations should not override the default behavior.
Sourcefn visit_value<V>(&mut self) -> Result<V, Self::Error>where
V: Deserialize,
fn visit_value<V>(&mut self) -> Result<V, Self::Error>where
V: Deserialize,
This returns a Ok(value) for the next value in the map.
This method exists as a convenience for Deserialize implementations.
MapVisitor implementations should not override the default behavior.
Sourcefn visit<K, V>(&mut self) -> Result<Option<(K, V)>, Self::Error>where
K: Deserialize,
V: Deserialize,
fn visit<K, V>(&mut self) -> Result<Option<(K, V)>, Self::Error>where
K: Deserialize,
V: Deserialize,
This returns Ok(Some((key, value))) for the next (key-value) pair in
the map, or Ok(None) if there are no more remaining items.
This method exists as a convenience for Deserialize implementations.
MapVisitor implementations should not override the default behavior.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.