xml: Implement XmlDocument for tagged enums and fix small bug

This commit is contained in:
Lennart
2024-12-23 13:02:59 +01:00
parent 6721e876fa
commit 98ed1a3fc5
5 changed files with 65 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ use quick_xml::name::Namespace;
use quick_xml::name::ResolveResult;
use std::io::BufRead;
pub use xml_derive::XmlDeserialize;
pub use xml_derive::XmlDocument;
pub use xml_derive::XmlRootTag;
use quick_xml::events::{BytesStart, Event};
@@ -74,7 +75,7 @@ impl<T: XmlRootTag + XmlDeserialize> XmlDocument for T {
{
let mut buf = Vec::new();
let event = reader.read_event_into(&mut buf)?;
let empty = event.is_empty();
let empty = matches!(event, Event::Empty(_));
match event {
Event::Start(start) | Event::Empty(start) => {
let (ns, name) = reader.resolve_element(start.name());

View File

@@ -7,6 +7,7 @@ mod value;
pub use de::XmlDeError;
pub use de::XmlDeserialize;
pub use de::XmlDocument;
pub use de::XmlRootTag;
pub use se::XmlSerialize;
pub use value::Value;