Trait FromXml

Source
pub trait FromXml<'xml>: Sized {
    type Accumulator: Accumulate<Self>;

    const KIND: Kind;

    // Required methods
    fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool;
    fn deserialize<'cx>(
        into: &mut Self::Accumulator,
        field: &'static str,
        deserializer: &mut Deserializer<'cx, 'xml>,
    ) -> Result<(), Error>;
}

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

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<'xml> FromXml<'xml> for IpAddr

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<IpAddr>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for bool

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<bool>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for char

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<char>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for f32

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<f32>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for f64

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<f64>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for i8

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<i8>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for i16

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<i16>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for i32

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<i32>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for i64

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<i64>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for isize

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<isize>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for u8

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<u8>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for u16

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<u16>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for u32

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<u32>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for u64

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<u64>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for ()

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<()>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, _: &'static str, _: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for usize

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<usize>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml> FromXml<'xml> for String

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Option<String>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml, 'a> FromXml<'xml> for Cow<'a, str>

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = CowStrAccumulator<'xml, 'a>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'_, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml, T: FromXml<'xml>> FromXml<'xml> for Cow<'_, [T]>
where [T]: ToOwned<Owned = Vec<T>>,

Source§

const KIND: Kind = Kind::Scalar

Source§

type Accumulator = Vec<T>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'_, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml, T: FromXml<'xml>> FromXml<'xml> for Option<T>

Source§

const KIND: Kind = T::KIND

Source§

type Accumulator = OptionAccumulator<T, <T as FromXml<'xml>>::Accumulator>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml, T: FromXml<'xml>> FromXml<'xml> for Box<T>

Source§

const KIND: Kind = T::KIND

Source§

type Accumulator = Option<Box<T>>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Source§

impl<'xml, T: FromXml<'xml>> FromXml<'xml> for Vec<T>

Source§

const KIND: Kind = T::KIND

Source§

type Accumulator = Vec<T>

Source§

fn matches(id: Id<'_>, field: Option<Id<'_>>) -> bool

Source§

fn deserialize<'cx>( into: &mut Self::Accumulator, field: &'static str, deserializer: &mut Deserializer<'cx, 'xml>, ) -> Result<(), Error>

Implementors§