File tree Expand file tree Collapse file tree 2 files changed +39
-2
lines changed Expand file tree Collapse file tree 2 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ enum Unsupported {
5454 Sequence ,
5555 Tuple ,
5656 TupleStruct ,
57+ #[ cfg( not( any( feature = "std" , feature = "alloc" ) ) ) ]
5758 Enum ,
5859}
5960
@@ -70,6 +71,7 @@ impl Display for Unsupported {
7071 Unsupported :: Sequence => formatter. write_str ( "a sequence" ) ,
7172 Unsupported :: Tuple => formatter. write_str ( "a tuple" ) ,
7273 Unsupported :: TupleStruct => formatter. write_str ( "a tuple struct" ) ,
74+ #[ cfg( not( any( feature = "std" , feature = "alloc" ) ) ) ]
7375 Unsupported :: Enum => formatter. write_str ( "an enum" ) ,
7476 }
7577 }
@@ -1095,9 +1097,9 @@ where
10951097 self ,
10961098 _: & ' static str ,
10971099 _: u32 ,
1098- _ : & ' static str ,
1100+ variant : & ' static str ,
10991101 ) -> Result < Self :: Ok , Self :: Error > {
1100- Err ( Self :: bad_type ( Unsupported :: Enum ) )
1102+ self . 0 . serialize_entry ( variant , & ( ) )
11011103 }
11021104
11031105 fn serialize_newtype_struct < T > (
Original file line number Diff line number Diff line change @@ -2655,11 +2655,46 @@ mod flatten {
26552655
26562656 #[ derive( Debug , PartialEq , Serialize , Deserialize ) ]
26572657 enum Enum {
2658+ Unit ,
26582659 Newtype ( HashMap < String , String > ) ,
26592660 Tuple ( u32 , u32 ) ,
26602661 Struct { index : u32 , value : u32 } ,
26612662 }
26622663
2664+ #[ test]
2665+ fn unit ( ) {
2666+ let value = Flatten {
2667+ data : Enum :: Unit ,
2668+ extra : HashMap :: from_iter ( [ ( "extra_key" . into ( ) , "extra value" . into ( ) ) ] ) ,
2669+ } ;
2670+ assert_tokens (
2671+ & value,
2672+ & [
2673+ Token :: Map { len : None } ,
2674+ // data
2675+ Token :: Str ( "Unit" ) , // variant
2676+ Token :: Unit ,
2677+ // extra
2678+ Token :: Str ( "extra_key" ) ,
2679+ Token :: Str ( "extra value" ) ,
2680+ Token :: MapEnd ,
2681+ ] ,
2682+ ) ;
2683+ assert_de_tokens (
2684+ & value,
2685+ & [
2686+ Token :: Map { len : None } ,
2687+ // extra
2688+ Token :: Str ( "extra_key" ) ,
2689+ Token :: Str ( "extra value" ) ,
2690+ // data
2691+ Token :: Str ( "Unit" ) , // variant
2692+ Token :: Unit ,
2693+ Token :: MapEnd ,
2694+ ] ,
2695+ ) ;
2696+ }
2697+
26632698 #[ test]
26642699 fn newtype ( ) {
26652700 assert_tokens (
You can’t perform that action at this time.
0 commit comments