xavier_internal/deserialize/
macro_trait.rs

1use quick_xml::events::BytesStart;
2use quick_xml::Reader;
3
4use crate::deserialize::error::PError;
5
6pub trait WrapWith<F, T> {
7    fn wrap(self) -> Option<F>;
8}
9
10impl<T, F> WrapWith<F, Option<T>> for Option<T>
11where
12    F: From<T>,
13{
14    fn wrap(self) -> Option<F> {
15        self.map(F::from)
16    }
17}
18
19pub trait XmlDeserializable {
20    fn from_xml(reader: &mut Reader<&[u8]>, event: Option<&BytesStart>, tag_name: Option<&str>) -> Result<Option<Self>, PError> where Self: Sized;
21    fn inner_name() -> Option<String> { None }
22}