Struct-like enum variants work!

This commit is contained in:
Graham Esau 2019-08-04 22:52:03 +01:00
parent 8b034f4dd8
commit d90a29f3f8

View file

@ -86,6 +86,7 @@ fn schema_for_enum(variants: &[Variant]) -> TokenStream {
}
schemas.extend(complex_variants.into_iter().map(|variant| {
let name = variant.attrs.name().deserialize_name();
let sub_schema = match variant.style {
Style::Newtype => {
let f = &variant.fields[0];
@ -100,10 +101,10 @@ fn schema_for_enum(variants: &[Variant]) -> TokenStream {
gen.subschema_for::<(#(#types),*)>()
}
}
Style::Struct => unimplemented!("work in progress!"),
Style::Struct => schema_for_struct(&variant.fields),
Style::Unit => unreachable!("Unit variants already filtered out"),
};
let name = variant.attrs.name().deserialize_name();
wrap_schema_fields(quote! {
properties: {
let mut props = std::collections::BTreeMap::new();