Struct serde_tagged::de::adj::map::KnownVisitor
source · pub struct KnownVisitor<'a, K, Kc: ?Sized + 'a, T, V> { /* private fields */ }
Expand description
A visitor that can be used to deserialize a map-based adjacently tagged value of known type.
This visitor handles a map-based adjacently tagged value, which is represented by a map containing exactly two entries. One entry of this tuple is a mapping from tag-key to tag, the other entry contains a mapping from value-key to value. Thus this visitor will return an error if the visited type is not a map with two entries.
This visitor is intended for use of known values, i.e. when no tag-specific deserialization mehtod is required. Thus it does not need to cache values which can improve the performance.
§Note
If you do not need to choose a specific deserialization-method based on the
tag, you should prefer this visitor to Visitor
.
Implementations§
Trait Implementations§
source§impl<'de, 'a, K, Kc: ?Sized, T, V> Visitor<'de> for KnownVisitor<'a, K, Kc, T, V>
impl<'de, 'a, K, Kc: ?Sized, T, V> Visitor<'de> for KnownVisitor<'a, K, Kc, T, V>
§type Value = (<T as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)
type Value = (<T as DeserializeSeed<'de>>::Value, <V as DeserializeSeed<'de>>::Value)
The value produced by this visitor.
source§fn expecting(&self, fmt: &mut Formatter<'_>) -> Result
fn expecting(&self, fmt: &mut Formatter<'_>) -> Result
Format a message stating what data this Visitor expects to receive. Read more
source§fn visit_map<A>(self, map: A) -> Result<Self::Value, A::Error>where
A: MapAccess<'de>,
fn visit_map<A>(self, map: A) -> Result<Self::Value, A::Error>where
A: MapAccess<'de>,
The input contains a key-value map. Read more
source§fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E>where
E: Error,
fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E>where
E: Error,
The input contains a boolean. Read more
source§fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E>where
E: Error,
fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E>where
E: Error,
The input contains an
i8
. Read moresource§fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>where
E: Error,
fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>where
E: Error,
The input contains an
i16
. Read moresource§fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>where
E: Error,
fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>where
E: Error,
The input contains an
i32
. Read moresource§fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>where
E: Error,
fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>where
E: Error,
The input contains an
i64
. Read moresource§fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>where
E: Error,
fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>where
E: Error,
The input contains a
i128
. Read moresource§fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>where
E: Error,
fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>where
E: Error,
The input contains a
u8
. Read moresource§fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>where
E: Error,
fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>where
E: Error,
The input contains a
u16
. Read moresource§fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>where
E: Error,
fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>where
E: Error,
The input contains a
u32
. Read moresource§fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>where
E: Error,
fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>where
E: Error,
The input contains a
u64
. Read moresource§fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>where
E: Error,
fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>where
E: Error,
The input contains a
u128
. Read moresource§fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>where
E: Error,
fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>where
E: Error,
The input contains an
f32
. Read moresource§fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>where
E: Error,
fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>where
E: Error,
The input contains an
f64
. Read moresource§fn visit_char<E>(self, v: char) -> Result<Self::Value, E>where
E: Error,
fn visit_char<E>(self, v: char) -> Result<Self::Value, E>where
E: Error,
The input contains a
char
. Read moresource§fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>where
E: Error,
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>where
E: Error,
The input contains a string. The lifetime of the string is ephemeral and
it may be destroyed after this method returns. Read more
source§fn visit_borrowed_str<E>(self, v: &'de str) -> Result<Self::Value, E>where
E: Error,
fn visit_borrowed_str<E>(self, v: &'de str) -> Result<Self::Value, E>where
E: Error,
The input contains a string that lives at least as long as the
Deserializer
. Read moresource§fn visit_string<E>(self, v: String) -> Result<Self::Value, E>where
E: Error,
fn visit_string<E>(self, v: String) -> Result<Self::Value, E>where
E: Error,
The input contains a string and ownership of the string is being given
to the
Visitor
. Read moresource§fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>where
E: Error,
fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array. The lifetime of the byte array is
ephemeral and it may be destroyed after this method returns. Read more
source§fn visit_borrowed_bytes<E>(self, v: &'de [u8]) -> Result<Self::Value, E>where
E: Error,
fn visit_borrowed_bytes<E>(self, v: &'de [u8]) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array that lives at least as long as the
Deserializer
. Read moresource§fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>where
E: Error,
fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E>where
E: Error,
The input contains a byte array and ownership of the byte array is being
given to the
Visitor
. Read moresource§fn visit_none<E>(self) -> Result<Self::Value, E>where
E: Error,
fn visit_none<E>(self) -> Result<Self::Value, E>where
E: Error,
The input contains an optional that is absent. Read more
source§fn visit_some<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn visit_some<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
The input contains an optional that is present. Read more
source§fn visit_unit<E>(self) -> Result<Self::Value, E>where
E: Error,
fn visit_unit<E>(self) -> Result<Self::Value, E>where
E: Error,
The input contains a unit
()
. Read moresource§fn visit_newtype_struct<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn visit_newtype_struct<D>(
self,
deserializer: D,
) -> Result<Self::Value, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
The input contains a newtype struct. Read more
source§fn visit_seq<A>(
self,
seq: A,
) -> Result<Self::Value, <A as SeqAccess<'de>>::Error>where
A: SeqAccess<'de>,
fn visit_seq<A>(
self,
seq: A,
) -> Result<Self::Value, <A as SeqAccess<'de>>::Error>where
A: SeqAccess<'de>,
The input contains a sequence of elements. Read more
source§fn visit_enum<A>(
self,
data: A,
) -> Result<Self::Value, <A as EnumAccess<'de>>::Error>where
A: EnumAccess<'de>,
fn visit_enum<A>(
self,
data: A,
) -> Result<Self::Value, <A as EnumAccess<'de>>::Error>where
A: EnumAccess<'de>,
The input contains an enum. Read more
Auto Trait Implementations§
impl<'a, K, Kc, T, V> Freeze for KnownVisitor<'a, K, Kc, T, V>
impl<'a, K, Kc, T, V> RefUnwindSafe for KnownVisitor<'a, K, Kc, T, V>
impl<'a, K, Kc, T, V> Send for KnownVisitor<'a, K, Kc, T, V>
impl<'a, K, Kc, T, V> Sync for KnownVisitor<'a, K, Kc, T, V>
impl<'a, K, Kc, T, V> Unpin for KnownVisitor<'a, K, Kc, T, V>
impl<'a, K, Kc, T, V> UnwindSafe for KnownVisitor<'a, K, Kc, T, V>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more