mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 17:18:08 +00:00
Revisit of the representation of adjacently tagged enums tag
This commit is contained in:
@@ -2108,7 +2108,10 @@ fn test_adjacently_tagged_enum_bytes() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("A"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "A",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Struct { name: "A", len: 1 },
|
||||
Token::Str("a"),
|
||||
@@ -2126,7 +2129,10 @@ fn test_adjacently_tagged_enum_bytes() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Bytes(b"t"),
|
||||
Token::Str("A"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "A",
|
||||
},
|
||||
Token::Bytes(b"c"),
|
||||
Token::Struct { name: "A", len: 1 },
|
||||
Token::Str("a"),
|
||||
@@ -2167,7 +2173,10 @@ fn test_adjacently_tagged_enum_containing_flatten() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("A"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "A",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Map { len: None },
|
||||
Token::Str("a"),
|
||||
@@ -2757,7 +2766,7 @@ fn test_expecting_message_adjacently_tagged_enum() {
|
||||
// Check that #[serde(expecting = "...")] doesn't affect variant identifier error message
|
||||
assert_de_tokens_error::<Enum>(
|
||||
&[Token::Map { len: None }, Token::Str("tag"), Token::Unit],
|
||||
r#"invalid type: unit value, expected variant identifier"#,
|
||||
r#"invalid type: unit value, expected enum tag"#,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2992,7 +3001,10 @@ mod flatten {
|
||||
Token::Str("outer"),
|
||||
Token::U32(42),
|
||||
Token::Str("tag"),
|
||||
Token::Str("Struct"),
|
||||
Token::UnitVariant {
|
||||
name: "tag",
|
||||
variant: "Struct",
|
||||
},
|
||||
Token::Str("content"),
|
||||
Token::Struct {
|
||||
len: 2,
|
||||
@@ -3020,7 +3032,10 @@ mod flatten {
|
||||
Token::Str("outer"),
|
||||
Token::U32(42),
|
||||
Token::Str("tag"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "tag",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::Str("content"),
|
||||
Token::Struct {
|
||||
len: 1,
|
||||
|
||||
@@ -472,7 +472,10 @@ fn test_adjacently_tagged_newtype_struct() {
|
||||
},
|
||||
Token::U32(5),
|
||||
Token::Str("t"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1066,7 +1069,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 1,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1080,7 +1086,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1094,7 +1103,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Unit,
|
||||
Token::StructEnd,
|
||||
@@ -1112,7 +1124,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::Str("c"),
|
||||
Token::Unit,
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1128,7 +1143,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::Str("f"),
|
||||
Token::Unit,
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::Str("g"),
|
||||
Token::Unit,
|
||||
Token::Str("c"),
|
||||
@@ -1148,7 +1166,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::U8(1),
|
||||
Token::StructEnd,
|
||||
@@ -1166,7 +1187,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::Str("c"),
|
||||
Token::U8(1),
|
||||
Token::Str("t"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1180,7 +1204,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 1,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1194,7 +1221,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Tuple"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Tuple",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Tuple { len: 2 },
|
||||
Token::U8(1),
|
||||
@@ -1218,7 +1248,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::U8(1),
|
||||
Token::TupleEnd,
|
||||
Token::Str("t"),
|
||||
Token::Str("Tuple"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Tuple",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1232,7 +1265,10 @@ fn test_adjacently_tagged_enum() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Struct"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Struct",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Struct {
|
||||
name: "Struct",
|
||||
@@ -1262,7 +1298,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::U8(1),
|
||||
Token::StructEnd,
|
||||
Token::Str("t"),
|
||||
Token::Str("Struct"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Struct",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1278,7 +1317,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::U64(1), // content field
|
||||
Token::U8(1),
|
||||
Token::U64(0), // tag field
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1294,7 +1336,10 @@ fn test_adjacently_tagged_enum() {
|
||||
Token::Bytes(b"c"),
|
||||
Token::U8(1),
|
||||
Token::Bytes(b"t"),
|
||||
Token::Str("Newtype"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Newtype",
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
@@ -1316,7 +1361,10 @@ fn test_adjacently_tagged_enum_deny_unknown_fields() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Unit,
|
||||
Token::StructEnd,
|
||||
@@ -1330,7 +1378,10 @@ fn test_adjacently_tagged_enum_deny_unknown_fields() {
|
||||
len: 2,
|
||||
},
|
||||
Token::Str("t"),
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::Str("c"),
|
||||
Token::Unit,
|
||||
Token::Str("h"),
|
||||
@@ -1369,7 +1420,10 @@ fn test_adjacently_tagged_enum_deny_unknown_fields() {
|
||||
len: 2,
|
||||
},
|
||||
Token::U64(0), // tag field
|
||||
Token::Str("Unit"),
|
||||
Token::UnitVariant {
|
||||
name: "t",
|
||||
variant: "Unit",
|
||||
},
|
||||
Token::U64(3),
|
||||
],
|
||||
r#"invalid value: integer `3`, expected "t" or "c""#,
|
||||
@@ -1565,7 +1619,10 @@ fn test_internally_tagged_struct_with_flattened_field() {
|
||||
Token::Str("tag_struct"),
|
||||
Token::Str("Struct"),
|
||||
Token::Str("tag_enum"),
|
||||
Token::Str("A"),
|
||||
Token::UnitVariant {
|
||||
name: "tag_enum",
|
||||
variant: "A",
|
||||
},
|
||||
Token::Str("content"),
|
||||
Token::U64(0),
|
||||
Token::MapEnd,
|
||||
|
||||
Reference in New Issue
Block a user