[−]Trait astral::thirdparty::serde::de::MapAccess
Provides a Visitor
access to each entry of a map in the input.
This is a trait that a Deserializer
passes to a Visitor
implementation.
Lifetime
The 'de
lifetime of this trait is the lifetime of data that may be
borrowed by deserialized map entries. See the page Understanding
deserializer lifetimes for a more detailed explanation of these lifetimes.
Example implementation
The example data format presented on the website demonstrates an
implementation of MapAccess
for a basic JSON data format.
Associated Types
Loading content...Required methods
fn next_key_seed<K>(
&mut self,
seed: K
) -> Result<Option<<K as DeserializeSeed<'de>>::Value>, Self::Error> where
K: DeserializeSeed<'de>,
&mut self,
seed: K
) -> Result<Option<<K as DeserializeSeed<'de>>::Value>, Self::Error> where
K: DeserializeSeed<'de>,
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
MapAccess::next_key
or MapAccess::next_entry
instead.
fn next_value_seed<V>(
&mut self,
seed: V
) -> Result<<V as DeserializeSeed<'de>>::Value, Self::Error> where
V: DeserializeSeed<'de>,
&mut self,
seed: V
) -> Result<<V as DeserializeSeed<'de>>::Value, Self::Error> where
V: DeserializeSeed<'de>,
This returns a Ok(value)
for the next value in the map.
Deserialize
implementations should typically use
MapAccess::next_value
instead.
Panics
Calling next_value_seed
before next_key_seed
is incorrect and is
allowed to panic or return bogus results.
Provided methods
fn next_entry_seed<K, V>(
&mut self,
kseed: K,
vseed: V
) -> Result<Option<(<K as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)>, Self::Error> where
K: DeserializeSeed<'de>,
V: DeserializeSeed<'de>,
&mut self,
kseed: K,
vseed: V
) -> Result<Option<(<K as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)>, Self::Error> where
K: DeserializeSeed<'de>,
V: DeserializeSeed<'de>,
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.
MapAccess
implementations should override the default behavior if a
more efficient implementation is possible.
Deserialize
implementations should typically use
MapAccess::next_entry
instead.
fn next_key<K>(&mut self) -> Result<Option<K>, Self::Error> where
K: Deserialize<'de>,
K: Deserialize<'de>,
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.
MapAccess
implementations should not override the default behavior.
fn next_value<V>(&mut self) -> Result<V, Self::Error> where
V: Deserialize<'de>,
V: Deserialize<'de>,
This returns a Ok(value)
for the next value in the map.
This method exists as a convenience for Deserialize
implementations.
MapAccess
implementations should not override the default behavior.
Panics
Calling next_value
before next_key
is incorrect and is allowed to
panic or return bogus results.
fn next_entry<K, V>(&mut self) -> Result<Option<(K, V)>, Self::Error> where
K: Deserialize<'de>,
V: Deserialize<'de>,
K: Deserialize<'de>,
V: Deserialize<'de>,
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.
MapAccess
implementations should not override the default behavior.
fn size_hint(&self) -> Option<usize>
Returns the number of entries remaining in the map, if known.
Implementations on Foreign Types
impl<'de, 'a, A> MapAccess<'de> for &'a mut A where
A: MapAccess<'de>,
[src]
A: MapAccess<'de>,
type Error = <A as MapAccess<'de>>::Error
fn next_key_seed<K>(
&mut self,
seed: K
) -> Result<Option<<K as DeserializeSeed<'de>>::Value>, <&'a mut A as MapAccess<'de>>::Error> where
K: DeserializeSeed<'de>,
[src]
&mut self,
seed: K
) -> Result<Option<<K as DeserializeSeed<'de>>::Value>, <&'a mut A as MapAccess<'de>>::Error> where
K: DeserializeSeed<'de>,
fn next_value_seed<V>(
&mut self,
seed: V
) -> Result<<V as DeserializeSeed<'de>>::Value, <&'a mut A as MapAccess<'de>>::Error> where
V: DeserializeSeed<'de>,
[src]
&mut self,
seed: V
) -> Result<<V as DeserializeSeed<'de>>::Value, <&'a mut A as MapAccess<'de>>::Error> where
V: DeserializeSeed<'de>,
fn next_entry_seed<K, V>(
&mut self,
kseed: K,
vseed: V
) -> Result<Option<(<K as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)>, <&'a mut A as MapAccess<'de>>::Error> where
K: DeserializeSeed<'de>,
V: DeserializeSeed<'de>,
[src]
&mut self,
kseed: K,
vseed: V
) -> Result<Option<(<K as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)>, <&'a mut A as MapAccess<'de>>::Error> where
K: DeserializeSeed<'de>,
V: DeserializeSeed<'de>,
fn next_entry<K, V>(
&mut self
) -> Result<Option<(K, V)>, <&'a mut A as MapAccess<'de>>::Error> where
K: Deserialize<'de>,
V: Deserialize<'de>,
[src]
&mut self
) -> Result<Option<(K, V)>, <&'a mut A as MapAccess<'de>>::Error> where
K: Deserialize<'de>,
V: Deserialize<'de>,
fn next_key<K>(
&mut self
) -> Result<Option<K>, <&'a mut A as MapAccess<'de>>::Error> where
K: Deserialize<'de>,
[src]
&mut self
) -> Result<Option<K>, <&'a mut A as MapAccess<'de>>::Error> where
K: Deserialize<'de>,
fn next_value<V>(&mut self) -> Result<V, <&'a mut A as MapAccess<'de>>::Error> where
V: Deserialize<'de>,
[src]
V: Deserialize<'de>,
fn size_hint(&self) -> Option<usize>
[src]
Implementors
impl<'de, I, E> MapAccess<'de> for MapDeserializer<'de, I, E> where
E: Error,
I: Iterator,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::First: IntoDeserializer<'de, E>,
<<I as Iterator>::Item as Pair>::Second: IntoDeserializer<'de, E>,
[src]
E: Error,
I: Iterator,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::First: IntoDeserializer<'de, E>,
<<I as Iterator>::Item as Pair>::Second: IntoDeserializer<'de, E>,
type Error = E
fn next_key_seed<T>(
&mut self,
seed: T
) -> Result<Option<<T as DeserializeSeed<'de>>::Value>, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
T: DeserializeSeed<'de>,
[src]
&mut self,
seed: T
) -> Result<Option<<T as DeserializeSeed<'de>>::Value>, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
T: DeserializeSeed<'de>,
fn next_value_seed<T>(
&mut self,
seed: T
) -> Result<<T as DeserializeSeed<'de>>::Value, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
T: DeserializeSeed<'de>,
[src]
&mut self,
seed: T
) -> Result<<T as DeserializeSeed<'de>>::Value, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
T: DeserializeSeed<'de>,
fn next_entry_seed<TK, TV>(
&mut self,
kseed: TK,
vseed: TV
) -> Result<Option<(<TK as DeserializeSeed<'de>>::Value, <TV as DeserializeSeed<'de>>::Value)>, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
TK: DeserializeSeed<'de>,
TV: DeserializeSeed<'de>,
[src]
&mut self,
kseed: TK,
vseed: TV
) -> Result<Option<(<TK as DeserializeSeed<'de>>::Value, <TV as DeserializeSeed<'de>>::Value)>, <MapDeserializer<'de, I, E> as MapAccess<'de>>::Error> where
TK: DeserializeSeed<'de>,
TV: DeserializeSeed<'de>,
fn size_hint(&self) -> Option<usize>
[src]
fn next_key<K>(&mut self) -> Result<Option<K>, Self::Error> where
K: Deserialize<'de>,
[src]
K: Deserialize<'de>,
fn next_value<V>(&mut self) -> Result<V, Self::Error> where
V: Deserialize<'de>,
[src]
V: Deserialize<'de>,
fn next_entry<K, V>(&mut self) -> Result<Option<(K, V)>, Self::Error> where
K: Deserialize<'de>,
V: Deserialize<'de>,
[src]
K: Deserialize<'de>,
V: Deserialize<'de>,