fns-api-client 0.4.5

ФНС API клиент
Documentation
use yaserde::de::from_str;

use crate::client::error::XmlDeserializationError;

pub(crate) struct Serde;

impl Serde {
    pub(crate) fn from_xml<T: yaserde::YaDeserialize>(xml_string: &str) -> Result<T, XmlDeserializationError> {
        let resp = from_str::<T>(xml_string);
        match resp {
            Ok(e) => {
                Ok(e)
            }
            Err(error) => {
                Err(
                    XmlDeserializationError {
                        brief: "Ошибка десериализации".to_string(),
                        cause: error,
                        xml_string: xml_string.to_string(),
                    }
                )
            }
        }
    }
}