Some initial work on xml parsing

This commit is contained in:
Lennart
2024-11-24 15:09:34 +01:00
parent 7dfa0c9062
commit a9ef680c30
14 changed files with 1132 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
use core::panic;
use syn::{parse_macro_input, DeriveInput};
mod de;
use de::{impl_de_enum, impl_de_struct};
#[proc_macro_derive(XmlDeserialize, attributes(xml))]
pub fn derive_xml_deserialize(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let input = parse_macro_input!(input as DeriveInput);
match &input.data {
syn::Data::Enum(e) => impl_de_enum(&input, e),
syn::Data::Struct(s) => impl_de_struct(&input, s),
syn::Data::Union(_) => panic!("Union not supported"),
}
.into()
}