diff --git a/crates/xml/derive/src/variant.rs b/crates/xml/derive/src/variant.rs index 469ba24..df3211a 100644 --- a/crates/xml/derive/src/variant.rs +++ b/crates/xml/derive/src/variant.rs @@ -119,8 +119,16 @@ impl Variant { } } } - (true, Fields::Unnamed(_), _) => { - panic!("other for tuple enums not implemented yet") + (true, Fields::Unnamed(FieldsUnnamed { unnamed, .. }), _) => { + if unnamed.len() != 1 { + panic!("tuple variants should contain exactly one element"); + } + quote! { + _ => { + let val = <#deserializer_type as ::rustical_xml::XmlDeserialize>::deserialize(reader, start, empty)?; + Ok(Self::#ident(val)) + } + } } (true, Fields::Unit, _) => { quote! {