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 method
    fn deserialize<T>(self) -> Result<T, Self::Error>
       where T: Deserialize<'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.

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.

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