#[cfg(feature = "libxml_output")]
use std::io::Write;
#[repr(C)]
#[derive(Debug, Default)]
pub struct XmlEnumeration {
pub next: Option<Box<XmlEnumeration>>,
pub name: String,
}
impl Clone for XmlEnumeration {
#[doc(alias = "xmlCopyEnumeration")]
fn clone(&self) -> Self {
Self {
next: self.next.as_deref().map(|next| Box::new(next.clone())),
name: self.name.clone(),
}
}
}
#[doc(alias = "xmlCreateEnumeration")]
pub fn xml_create_enumeration(name: &str) -> Box<XmlEnumeration> {
Box::new(XmlEnumeration {
name: name.to_owned(),
next: None,
})
}
#[doc(alias = "xmlDumpEnumeration")]
#[cfg(feature = "libxml_output")]
pub(crate) fn xml_dump_enumeration<'a>(out: &mut (impl Write + 'a), cur: &XmlEnumeration) {
write!(out, "{}", cur.name).ok();
if let Some(next) = cur.next.as_deref() {
write!(out, " | ").ok();
xml_dump_enumeration(out, next);
} else {
write!(out, ")").ok();
}
}