xml: Make serialization more ergonomic and clippy appeasement

This commit is contained in:
Lennart K
2025-06-29 17:00:10 +02:00
parent 891ef6a9f3
commit 828e7399c8
9 changed files with 72 additions and 87 deletions

View File

@@ -1,6 +1,6 @@
use crate::XmlRootTag;
use quick_xml::{
events::{attributes::Attribute, BytesStart, Event},
events::{BytesStart, Event, attributes::Attribute},
name::{Namespace, QName},
};
use std::collections::HashMap;
@@ -44,6 +44,13 @@ pub trait XmlSerializeRoot {
&self,
writer: &mut quick_xml::Writer<W>,
) -> std::io::Result<()>;
fn serialize_to_string(&self) -> std::io::Result<String> {
let mut buf: Vec<_> = b"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n".into();
let mut writer = quick_xml::Writer::new(&mut buf);
self.serialize_root(&mut writer)?;
Ok(String::from_utf8_lossy(&buf).to_string())
}
}
impl<T: XmlSerialize + XmlRootTag> XmlSerializeRoot for T {