xavier_internal/deserialize/
macro_trait.rs1use 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}