use quick_xml::Reader;
use quick_xml::Writer;
use quick_xml::events::Event;
use crate::error::{OfdError, Result};
pub fn pretty_xml(input: &str) -> Result<String> {
let mut reader = Reader::from_str(input);
reader.config_mut().trim_text(true);
let mut writer = Writer::new_with_indent(Vec::new(), b' ', 2);
loop {
match reader.read_event() {
Ok(Event::Eof) => break,
Ok(event) => writer
.write_event(event)
.map_err(|e| OfdError::Structure(format!("xml format error: {e}")))?,
Err(e) => return Err(OfdError::Structure(format!("xml format error: {e}"))),
}
}
Ok(String::from_utf8_lossy(&writer.into_inner()).into_owned())
}