Skip to main content

VariantAccess

Trait VariantAccess 

Source
pub trait VariantAccess<'de>: Sized {
    type Error: Error;

    // Required method
    fn deserialize_seed<T>(
        self,
        seed: T,
    ) -> Result<<T as DeserializeSeed<'de>>::Output, Self::Error>
       where T: DeserializeSeed<'de>;

    // Provided methods
    fn deserialize<T>(self) -> Result<T, Self::Error>
       where T: Deserialize<'de> { ... }
    fn validate<T>(self) -> Result<(), Self::Error>
       where T: Deserialize<'de> { ... }
    fn validate_seed<T>(self, seed: T) -> Result<(), Self::Error>
       where T: DeserializeSeed<'de> { ... }
}
Expand description

A visitor passed from SumAccess to SumVisitor::visit_sum which the latter uses to deserialize the data of a selected variant.

Required Associated Types§

Required Methods§

Source

fn deserialize_seed<T>( self, seed: T, ) -> Result<<T as DeserializeSeed<'de>>::Output, Self::Error>
where T: DeserializeSeed<'de>,

Called when deserializing the contents of a sum variant, and provided with a seed value.

Provided Methods§

Source

fn deserialize<T>(self) -> Result<T, Self::Error>
where T: Deserialize<'de>,

Called when deserializing the contents of a sum variant.

This method exists as a convenience for Deserialize implementations.

Source

fn validate<T>(self) -> Result<(), Self::Error>
where T: Deserialize<'de>,

Called when validating the contents of a sum variant.

This method exists as a convenience for Deserialize implementations.

Source

fn validate_seed<T>(self, seed: T) -> Result<(), Self::Error>
where T: DeserializeSeed<'de>,

Called when validating the contents of a sum variant, and provided with a seed value.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'de> VariantAccess<'de> for &'de ValueDeserializer

Source§

impl<'de> VariantAccess<'de> for ValueDeserializer

Source§

impl<'de, D> VariantAccess<'de> for SomeAccess<D>
where D: Deserializer<'de>,

Source§

type Error = <D as Deserializer<'de>>::Error

Source§

impl<'de, E> VariantAccess<'de> for NoneAccess<E>
where E: Error,

Source§

type Error = E

Source§

impl<'de, R> VariantAccess<'de> for Deserializer<'_, R>
where R: BufReader<'de>,