diff --git a/crates/xml/derive/src/common.rs b/crates/xml/derive/src/generic.rs similarity index 100% rename from crates/xml/derive/src/common.rs rename to crates/xml/derive/src/generic.rs diff --git a/crates/xml/derive/src/lib.rs b/crates/xml/derive/src/lib.rs index 8d5bbac..b217b53 100644 --- a/crates/xml/derive/src/lib.rs +++ b/crates/xml/derive/src/lib.rs @@ -1,15 +1,15 @@ use core::panic; -use syn::{parse_macro_input, DeriveInput}; +use syn::{DeriveInput, parse_macro_input}; pub(crate) mod attrs; -mod common; mod field; +mod generic; mod variant; mod xml_enum; mod xml_struct; -pub(crate) use common::*; pub(crate) use field::Field; +pub(crate) use generic::*; pub(crate) use variant::Variant; pub(crate) use xml_enum::Enum; pub(crate) use xml_struct::NamedStruct; diff --git a/crates/xml/derive/src/xml_struct.rs b/crates/xml/derive/src/xml_struct.rs index bb0d5c3..ffee367 100644 --- a/crates/xml/derive/src/xml_struct.rs +++ b/crates/xml/derive/src/xml_struct.rs @@ -19,36 +19,27 @@ impl NamedStruct { pub fn parse(input: &DeriveInput, data: &DataStruct) -> Self { let attrs = StructAttrs::from_derive_input(input).unwrap(); - match &data.fields { - syn::Fields::Named(named) => NamedStruct { - fields: named - .named - .iter() - .enumerate() - .map(|(i, field)| Field::from_syn_field(field.to_owned(), i)) - .collect(), - attrs, - ident: input.ident.to_owned(), - generics: input.generics.to_owned(), - }, - syn::Fields::Unnamed(unnamed) => NamedStruct { - fields: unnamed - .unnamed - .iter() - .enumerate() - .map(|(i, field)| Field::from_syn_field(field.to_owned(), i)) - .collect(), - attrs, - ident: input.ident.to_owned(), - generics: input.generics.to_owned(), - }, + let fields = match &data.fields { + syn::Fields::Named(named) => named + .named + .iter() + .enumerate() + .map(|(i, field)| Field::from_syn_field(field.to_owned(), i)) + .collect(), + syn::Fields::Unnamed(unnamed) => unnamed + .unnamed + .iter() + .enumerate() + .map(|(i, field)| Field::from_syn_field(field.to_owned(), i)) + .collect(), + syn::Fields::Unit => vec![], + }; - syn::Fields::Unit => NamedStruct { - fields: vec![], - attrs, - ident: input.ident.to_owned(), - generics: input.generics.to_owned(), - }, + NamedStruct { + fields, + attrs, + ident: input.ident.to_owned(), + generics: input.generics.to_owned(), } } } @@ -184,10 +175,7 @@ impl NamedStruct { Event::Decl(_) => { /* ignore this */ } Event::Comment(_) => { /* ignore */ } Event::DocType(_) => { /* ignore */ } - Event::PI(_) => { - // Error: not supported - return Err(XmlError::UnsupportedEvent("Processing instruction")); - } + Event::PI(_) => { /* ignore */ } Event::End(end) => { unreachable!("Unexpected closing tag for wrong element, should be handled by quick_xml"); }