@@ -579,47 +579,44 @@ impl<'a, 'de> Visitor<'de> for EnumVisitor<'a> {
579579 A : EnumAccess < ' de > ,
580580 {
581581 let mut dynamic_enum = DynamicEnum :: default ( ) ;
582- match data. variant ( ) . unwrap ( ) {
583- ( Ident ( variant_name) , variant) => {
584- let variant_info = self . enum_info . variant ( & variant_name) . ok_or_else ( || {
585- Error :: unknown_variant ( & variant_name, self . enum_info . variant_names ( ) )
582+ let ( Ident ( variant_name) , variant) = data. variant ( ) . unwrap ( ) ;
583+ let variant_info = self
584+ . enum_info
585+ . variant ( & variant_name)
586+ . ok_or_else ( || Error :: unknown_variant ( & variant_name, self . enum_info . variant_names ( ) ) ) ?;
587+ let value: DynamicVariant = match variant_info {
588+ VariantInfo :: Unit ( ..) => variant. unit_variant ( ) ?. into ( ) ,
589+ VariantInfo :: Struct ( struct_info) => variant
590+ . struct_variant (
591+ struct_info. field_names ( ) ,
592+ StructVariantVisitor {
593+ struct_info,
594+ registry : self . registry ,
595+ } ,
596+ ) ?
597+ . into ( ) ,
598+ VariantInfo :: Tuple ( tuple_info) if tuple_info. field_len ( ) == 1 => {
599+ let type_info = get_newtype_info ( tuple_info, self . registry ) ?;
600+ let value = variant. newtype_variant_seed ( TypedReflectDeserializer {
601+ type_info,
602+ registry : self . registry ,
586603 } ) ?;
587- let value: DynamicVariant = match variant_info {
588- VariantInfo :: Unit ( ..) => variant. unit_variant ( ) ?. into ( ) ,
589- VariantInfo :: Struct ( struct_info) => variant
590- . struct_variant (
591- struct_info. field_names ( ) ,
592- StructVariantVisitor {
593- struct_info,
594- registry : self . registry ,
595- } ,
596- ) ?
597- . into ( ) ,
598- VariantInfo :: Tuple ( tuple_info) if tuple_info. field_len ( ) == 1 => {
599- let type_info = get_newtype_info ( tuple_info, self . registry ) ?;
600- let value = variant. newtype_variant_seed ( TypedReflectDeserializer {
601- type_info,
602- registry : self . registry ,
603- } ) ?;
604- let mut dynamic_tuple = DynamicTuple :: default ( ) ;
605- dynamic_tuple. insert_boxed ( value) ;
606- dynamic_tuple. into ( )
607- }
608- VariantInfo :: Tuple ( tuple_info) => variant
609- . tuple_variant (
610- tuple_info. field_len ( ) ,
611- TupleVariantVisitor {
612- tuple_info,
613- registry : self . registry ,
614- } ,
615- ) ?
616- . into ( ) ,
617- } ;
618-
619- dynamic_enum. set_variant ( variant_name, value) ;
604+ let mut dynamic_tuple = DynamicTuple :: default ( ) ;
605+ dynamic_tuple. insert_boxed ( value) ;
606+ dynamic_tuple. into ( )
620607 }
621- }
608+ VariantInfo :: Tuple ( tuple_info) => variant
609+ . tuple_variant (
610+ tuple_info. field_len ( ) ,
611+ TupleVariantVisitor {
612+ tuple_info,
613+ registry : self . registry ,
614+ } ,
615+ ) ?
616+ . into ( ) ,
617+ } ;
622618
619+ dynamic_enum. set_variant ( variant_name, value) ;
623620 Ok ( dynamic_enum)
624621 }
625622}
0 commit comments