pub trait VariantVisitor {
type Error: Error;
// Required method
fn visit_variant<V>(&mut self) -> Result<V, Self::Error>
where V: Deserialize;
// Provided methods
fn visit_unit(&mut self) -> Result<(), Self::Error> { ... }
fn visit_newtype<T>(&mut self) -> Result<T, Self::Error>
where T: Deserialize { ... }
fn visit_tuple<V>(
&mut self,
_len: usize,
_visitor: V,
) -> Result<<V as Visitor>::Value, Self::Error>
where V: Visitor { ... }
fn visit_struct<V>(
&mut self,
_fields: &'static [&'static str],
_visitor: V,
) -> Result<<V as Visitor>::Value, Self::Error>
where V: Visitor { ... }
}Expand description
VariantVisitor is a visitor that is created by the Deserializer and passed to the
Deserialize in order to deserialize a specific enum variant.
Required Associated Types§
Required Methods§
Sourcefn visit_variant<V>(&mut self) -> Result<V, Self::Error>where
V: Deserialize,
fn visit_variant<V>(&mut self) -> Result<V, Self::Error>where
V: Deserialize,
visit_variant is called to identify which variant to deserialize.
Provided Methods§
Sourcefn visit_unit(&mut self) -> Result<(), Self::Error>
fn visit_unit(&mut self) -> Result<(), Self::Error>
visit_unit is called when deserializing a variant with no values.
Sourcefn visit_newtype<T>(&mut self) -> Result<T, Self::Error>where
T: Deserialize,
fn visit_newtype<T>(&mut self) -> Result<T, Self::Error>where
T: Deserialize,
visit_newtype is called when deserializing a variant with a single value. By default this
uses the visit_tuple method to deserialize the value.
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.
Implementations on Foreign Types§
Source§impl<'a, T> VariantVisitor for &'a mut Twhere
T: VariantVisitor,
impl<'a, T> VariantVisitor for &'a mut Twhere
T: VariantVisitor,
type Error = <T as VariantVisitor>::Error
fn visit_variant<V>(&mut self) -> Result<V, <T as VariantVisitor>::Error>where
V: Deserialize,
fn visit_unit(&mut self) -> Result<(), <T as VariantVisitor>::Error>
fn visit_newtype<D>(&mut self) -> Result<D, <T as VariantVisitor>::Error>where
D: Deserialize,
fn visit_tuple<V>(
&mut self,
len: usize,
visitor: V,
) -> Result<<V as Visitor>::Value, <T as VariantVisitor>::Error>where
V: Visitor,
fn visit_struct<V>(
&mut self,
fields: &'static [&'static str],
visitor: V,
) -> Result<<V as Visitor>::Value, <T as VariantVisitor>::Error>where
V: Visitor,
Implementors§
Source§impl<'a, E> VariantVisitor for StrDeserializer<'a, E>where
E: Error,
impl<'a, E> VariantVisitor for StrDeserializer<'a, E>where
E: Error,
Source§impl<'a, E> VariantVisitor for StringDeserializer<E>where
E: Error,
Available on crate features std or collections only.
impl<'a, E> VariantVisitor for StringDeserializer<E>where
E: Error,
Available on crate features
std or collections only.