DeserializeXml

Trait DeserializeXml 

Source
pub trait DeserializeXml: Default {
    // Required method
    fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>;

    // Provided method
    fn from_str(s: &str) -> Result<Self> { ... }
}

Required Methods§

Source

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

The beating heart of this trait. Implementations are expected to maintain the following invariant: when DeserializeXml::from_reader is called, the implementation will consume the next element from the reader (which will be a StartElement event), as well as all elements up to and including the corresponding EndElement event. The implementation should use the data from those events to construct and return an element of the type for which this trait is being implemented.

Note: technically the invariant isn’t true for the initial call, which might need to consume some introductory elements (e.g., <xml>) before parsing in earnest—that should be of no concern though, since the provided derive macro is the intended entry point, and it handles this already.

Provided Methods§

Source

fn from_str(s: &str) -> Result<Self>

A convenience function; sets up a suitable reader and calls from_reader.

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 DeserializeXml for i8

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for i16

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for i32

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for i64

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for i128

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for isize

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for u8

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for u16

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for u32

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for u64

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for u128

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for usize

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Source§

impl DeserializeXml for String

Source§

fn from_reader<R: Read>(reader: &mut Peekable<Events<R>>) -> Result<Self>

Implementors§