#![warn(warnings)]
mod header;
mod method;
mod result;
mod status;
pub use header::Header;
pub use method::Method;
pub use result::*;
pub use status::StatusCode;
pub trait ToXml: std::fmt::Debug {
fn to_xml(&self) -> String;
}
impl<T: ToXml> ToXml for Option<T> {
fn to_xml(&self) -> String {
self.as_ref().map(ToXml::to_xml).unwrap_or_default()
}
}
impl ToXml for Vec<Box<dyn ToXml>> {
fn to_xml(&self) -> String {
self.iter().map(|x| x.to_xml()).collect::<Vec<_>>().join("")
}
}
impl<T: ToXml> ToXml for Vec<T> {
fn to_xml(&self) -> String {
self.iter().map(|x| x.to_xml()).collect::<Vec<_>>().join("")
}
}