use crate::core::Error;
pub fn from_xml<T: yaserde::YaDeserialize>(xml: &str) -> Result<T, Error> {
yaserde::de::from_str(xml).map_err(Error::Deserialize)
}
pub fn to_xml<T: yaserde::YaSerialize>(value: &T) -> Result<String, Error> {
yaserde::ser::to_string(value).map_err(Error::Serialize)
}
pub fn to_xml_fragment<T: yaserde::YaSerialize>(value: &T) -> Result<String, Error> {
let cfg = yaserde::ser::Config {
write_document_declaration: false,
..Default::default()
};
yaserde::ser::to_string_with_config(value, &cfg).map_err(Error::Serialize)
}
#[cfg(feature = "serde")]
pub fn to_json<T: serde::Serialize>(value: &T) -> Result<String, Error> {
serde_json::to_string(value).map_err(|e| Error::Serialize(e.to_string()))
}
#[cfg(feature = "serde")]
pub fn from_json<T: serde::de::DeserializeOwned>(json: &str) -> Result<T, Error> {
serde_json::from_str(json).map_err(|e| Error::Deserialize(e.to_string()))
}