File tree 2 files changed +39
-2
lines changed
2 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ enum Unsupported {
54
54
Sequence ,
55
55
Tuple ,
56
56
TupleStruct ,
57
+ #[ cfg( not( any( feature = "std" , feature = "alloc" ) ) ) ]
57
58
Enum ,
58
59
}
59
60
@@ -70,6 +71,7 @@ impl Display for Unsupported {
70
71
Unsupported :: Sequence => formatter. write_str ( "a sequence" ) ,
71
72
Unsupported :: Tuple => formatter. write_str ( "a tuple" ) ,
72
73
Unsupported :: TupleStruct => formatter. write_str ( "a tuple struct" ) ,
74
+ #[ cfg( not( any( feature = "std" , feature = "alloc" ) ) ) ]
73
75
Unsupported :: Enum => formatter. write_str ( "an enum" ) ,
74
76
}
75
77
}
@@ -1095,9 +1097,9 @@ where
1095
1097
self ,
1096
1098
_: & ' static str ,
1097
1099
_: u32 ,
1098
- _ : & ' static str ,
1100
+ variant : & ' static str ,
1099
1101
) -> Result < Self :: Ok , Self :: Error > {
1100
- Err ( Self :: bad_type ( Unsupported :: Enum ) )
1102
+ self . 0 . serialize_entry ( variant , & ( ) )
1101
1103
}
1102
1104
1103
1105
fn serialize_newtype_struct < T > (
Original file line number Diff line number Diff line change @@ -2655,11 +2655,46 @@ mod flatten {
2655
2655
2656
2656
#[ derive( Debug , PartialEq , Serialize , Deserialize ) ]
2657
2657
enum Enum {
2658
+ Unit ,
2658
2659
Newtype ( HashMap < String , String > ) ,
2659
2660
Tuple ( u32 , u32 ) ,
2660
2661
Struct { index : u32 , value : u32 } ,
2661
2662
}
2662
2663
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
+
2663
2698
#[ test]
2664
2699
fn newtype ( ) {
2665
2700
assert_tokens (
You can’t perform that action at this time.
0 commit comments