xml: Comprehensive refactoring from byte strings to strings

This commit is contained in:
Lennart
2025-08-28 18:01:41 +02:00
parent 85787e69bc
commit c4604d4376
37 changed files with 158 additions and 160 deletions

View File

@@ -111,8 +111,7 @@ impl Enum {
Some(ns) => quote! { Some(#ns) },
None => quote! { None },
};
let b_xml_name = variant.xml_name().value();
let xml_name = String::from_utf8_lossy(&b_xml_name);
let xml_name = variant.xml_name().value();
let out = quote! {(#ns, #xml_name)};
let ident = &variant.variant.ident;
@@ -134,8 +133,7 @@ impl Enum {
let str_to_unit_branches = tagged_variants.iter().map(|variant| {
let ident = &variant.variant.ident;
let b_xml_name = variant.xml_name().value();
let xml_name = String::from_utf8_lossy(&b_xml_name);
let xml_name = variant.xml_name().value();
if variant.attrs.prop.is_some() {
quote! { #xml_name => Ok(Self::#ident (Default::default())) }
} else {

View File

@@ -16,8 +16,8 @@ impl Enum {
fn serialize(
&self,
ns: Option<::quick_xml::name::Namespace>,
tag: Option<&[u8]>,
namespaces: &::std::collections::HashMap<::quick_xml::name::Namespace, &[u8]>,
tag: Option<&str>,
namespaces: &::std::collections::HashMap<::quick_xml::name::Namespace, &str>,
writer: &mut ::quick_xml::Writer<&mut Vec<u8>>
) -> ::std::io::Result<()> {
use ::quick_xml::events::{BytesEnd, BytesStart, BytesText, Event};
@@ -25,14 +25,16 @@ impl Enum {
let prefix = ns
.map(|ns| namespaces.get(&ns))
.unwrap_or(None)
.map(|prefix| if !prefix.is_empty() {
[*prefix, b":"].concat()
} else {
vec![]
});
.map(|prefix| {
if !prefix.is_empty() {
format!("{prefix}:")
} else {
String::new()
}
});
let has_prefix = prefix.is_some();
let tagname = tag.map(|tag| [&prefix.unwrap_or_default(), tag].concat());
let qname = tagname.as_ref().map(|tagname| ::quick_xml::name::QName(tagname));
let qname = tagname.as_ref().map(|tagname| ::quick_xml::name::QName(tagname.as_bytes()));
const enum_untagged: bool = #enum_untagged;

View File

@@ -108,8 +108,7 @@ impl Enum {
Some(ns) => quote! { Some(#ns) },
None => quote! { None },
};
let b_xml_name = variant.xml_name().value();
let xml_name = String::from_utf8_lossy(&b_xml_name);
let xml_name = variant.xml_name().value();
quote! {(#ns, #xml_name)}
});