File tree Expand file tree Collapse file tree 2 files changed +43
-1
lines changed
Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Original file line number Diff line number Diff line change @@ -1287,8 +1287,9 @@ mod content {
12871287 // }
12881288 //
12891289 // We want {"topic":"Info"} to deserialize even though
1290- // ordinarily unit structs do not deserialize from empty map.
1290+ // ordinarily unit structs do not deserialize from empty map/seq .
12911291 Content :: Map ( ref v) if v. is_empty ( ) => visitor. visit_unit ( ) ,
1292+ Content :: Seq ( ref v) if v. is_empty ( ) => visitor. visit_unit ( ) ,
12921293 _ => self . deserialize_any ( visitor) ,
12931294 }
12941295 }
Original file line number Diff line number Diff line change @@ -994,6 +994,28 @@ fn test_internally_tagged_struct_variant_containing_unit_variant() {
994994 Token :: StructEnd ,
995995 ] ,
996996 ) ;
997+
998+ assert_de_tokens (
999+ & Message :: Log { level : Level :: Info } ,
1000+ & [
1001+ Token :: Map { len : Some ( 2 ) } ,
1002+ Token :: Str ( "action" ) ,
1003+ Token :: Str ( "Log" ) ,
1004+ Token :: Str ( "level" ) ,
1005+ Token :: BorrowedStr ( "Info" ) ,
1006+ Token :: MapEnd ,
1007+ ] ,
1008+ ) ;
1009+
1010+ assert_de_tokens (
1011+ & Message :: Log { level : Level :: Info } ,
1012+ & [
1013+ Token :: Seq { len : Some ( 2 ) } ,
1014+ Token :: Str ( "Log" ) ,
1015+ Token :: BorrowedStr ( "Info" ) ,
1016+ Token :: SeqEnd ,
1017+ ] ,
1018+ ) ;
9971019}
9981020
9991021#[ test]
@@ -1877,6 +1899,25 @@ fn test_internally_tagged_newtype_variant_containing_unit_struct() {
18771899 Token :: MapEnd ,
18781900 ] ,
18791901 ) ;
1902+
1903+ assert_de_tokens (
1904+ & Message :: Info ( Info ) ,
1905+ & [
1906+ Token :: Struct { name : "Message" , len : 1 } ,
1907+ Token :: Str ( "topic" ) ,
1908+ Token :: Str ( "Info" ) ,
1909+ Token :: StructEnd ,
1910+ ] ,
1911+ ) ;
1912+
1913+ assert_de_tokens (
1914+ & Message :: Info ( Info ) ,
1915+ & [
1916+ Token :: Seq { len : Some ( 1 ) } ,
1917+ Token :: Str ( "Info" ) ,
1918+ Token :: SeqEnd ,
1919+ ] ,
1920+ ) ;
18801921}
18811922
18821923#[ deny( safe_packed_borrows) ]
You can’t perform that action at this time.
0 commit comments