Visitor

Trait Visitor 

Source
pub trait Visitor<'de>: Sized {
    type Value: Deserialize<'de>;

    // Required method
    fn expecting(&self, formatter: &mut Formatter<'_>) -> Result;

    // Provided methods
    fn visit_text<E, V>(self, value: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlText<'de> { ... }
    fn visit_cdata<E, V>(self, value: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlCData<'de> { ... }
    fn visit_element<A>(self, element: A) -> Result<Self::Value, A::Error>
       where A: ElementAccess<'de> { ... }
    fn visit_attribute<A>(self, attribute: A) -> Result<Self::Value, A::Error>
       where A: AttributeAccess<'de> { ... }
    fn visit_seq<S>(self, sequence: S) -> Result<Self::Value, S::Error>
       where S: SeqAccess<'de> { ... }
    fn visit_pi<E, V>(self, pi: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlProcessingInstruction { ... }
    fn visit_decl<E, V>(self, declaration: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlDeclaration { ... }
    fn visit_comment<E, V>(self, comment: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlComment<'de> { ... }
    fn visit_doctype<E, V>(self, doctype: V) -> Result<Self::Value, E>
       where E: Error,
             V: XmlDoctype<'de> { ... }
    fn visit_none<E>(self) -> Result<Self::Value, E>
       where E: Error { ... }
}
Expand description

Visitor trait that lets you define how to handle different types of XML nodes.

Required Associated Types§

Source

type Value: Deserialize<'de>

The type of value that this visitor will produce.

Required Methods§

Source

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

Returns a description of the type that this visitor expects.

Provided Methods§

Source

fn visit_text<E, V>(self, value: V) -> Result<Self::Value, E>
where E: Error, V: XmlText<'de>,

Visits an XML text node.

Source

fn visit_cdata<E, V>(self, value: V) -> Result<Self::Value, E>
where E: Error, V: XmlCData<'de>,

Visits an XML CDATA node.

Source

fn visit_element<A>(self, element: A) -> Result<Self::Value, A::Error>
where A: ElementAccess<'de>,

Visits an XML element.

Source

fn visit_attribute<A>(self, attribute: A) -> Result<Self::Value, A::Error>
where A: AttributeAccess<'de>,

Visits an XML attribute.

Source

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

Visits a sequence of values.

Source

fn visit_pi<E, V>(self, pi: V) -> Result<Self::Value, E>

Visits an XML PI node.

Source

fn visit_decl<E, V>(self, declaration: V) -> Result<Self::Value, E>
where E: Error, V: XmlDeclaration,

Visits a declaration.

Source

fn visit_comment<E, V>(self, comment: V) -> Result<Self::Value, E>
where E: Error, V: XmlComment<'de>,

Visits a comment.

Source

fn visit_doctype<E, V>(self, doctype: V) -> Result<Self::Value, E>
where E: Error, V: XmlDoctype<'de>,

Visits a doctype declaration.

Source

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

Visits nothing. This is used when a value is not present.

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§