Struct serde_tagged::de::adj::struc::KnownVisitor

source ·
pub struct KnownVisitor<T, V> { /* private fields */ }
Expand description

A visitor that can be used to deserialize a struct-based adjacently tagged value of known type.

This visitor handles a struct-based adjacently tagged value, which is represented by a struct containing exactly two fields. The first field of this tuple is named according to tag-key and contains tag, the second field is named according to value-key and contains the value. Thus this visitor will return an error if the visited type is not a map or sequence with two entries.

name is the name with which the struct that will be serialized.

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§

source§

impl<T, V> KnownVisitor<T, V>

source

pub fn new( tag_seed: T, value_seed: V, tag_key: &'static str, value_key: &'static str ) -> Self

Creates a new visitor with the given SeedFactory, tag-key and value-key.

Trait Implementations§

source§

impl<'de, T, V> Visitor<'de> for KnownVisitor<T, V>
where T: DeserializeSeed<'de>, V: DeserializeSeed<'de>,

§

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

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>,

The input contains a key-value map. Read more
source§

fn visit_seq<A>(self, seq: A) -> Result<Self::Value, A::Error>
where A: SeqAccess<'de>,

The input contains a sequence of elements. Read more
source§

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,

The input contains an i8. Read more
source§

fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E>
where E: Error,

The input contains an i16. Read more
source§

fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E>
where E: Error,

The input contains an i32. Read more
source§

fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E>
where E: Error,

The input contains an i64. Read more
source§

fn visit_i128<E>(self, v: i128) -> Result<Self::Value, E>
where E: Error,

The input contains a i128. Read more
source§

fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E>
where E: Error,

The input contains a u8. Read more
source§

fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E>
where E: Error,

The input contains a u16. Read more
source§

fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E>
where E: Error,

The input contains a u32. Read more
source§

fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>
where E: Error,

The input contains a u64. Read more
source§

fn visit_u128<E>(self, v: u128) -> Result<Self::Value, E>
where E: Error,

The input contains a u128. Read more
source§

fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E>
where E: Error,

The input contains an f32. Read more
source§

fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E>
where E: Error,

The input contains an f64. Read more
source§

fn visit_char<E>(self, v: char) -> Result<Self::Value, E>
where E: Error,

The input contains a char. Read more
source§

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,

The input contains a string that lives at least as long as the Deserializer. Read more
source§

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 more
source§

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,

The input contains a byte array that lives at least as long as the Deserializer. Read more
source§

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 more
source§

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>,

The input contains an optional that is present. Read more
source§

fn visit_unit<E>(self) -> Result<Self::Value, E>
where E: Error,

The input contains a unit (). Read more
source§

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_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<T, V> Freeze for KnownVisitor<T, V>
where T: Freeze, V: Freeze,

§

impl<T, V> RefUnwindSafe for KnownVisitor<T, V>

§

impl<T, V> Send for KnownVisitor<T, V>
where T: Send, V: Send,

§

impl<T, V> Sync for KnownVisitor<T, V>
where T: Sync, V: Sync,

§

impl<T, V> Unpin for KnownVisitor<T, V>
where T: Unpin, V: Unpin,

§

impl<T, V> UnwindSafe for KnownVisitor<T, V>
where T: UnwindSafe, V: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<'de, T> Expected for T
where T: Visitor<'de>,

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error>

Format an explanation of what data was being expected. Same signature as the Display and Debug traits.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.