mirror of
https://github.com/serde-rs/serde.git
synced 2025-10-02 07:21:12 +00:00
Reuse type in struct_variant_containing_unit_variant
This commit is contained in:
parent
41b9c33c2b
commit
7c0e6bd18f
@ -42,6 +42,7 @@ enum InternallyTagged {
|
|||||||
NewtypeStruct(Struct),
|
NewtypeStruct(Struct),
|
||||||
NewtypeEnum(Enum),
|
NewtypeEnum(Enum),
|
||||||
Struct { a: u8 },
|
Struct { a: u8 },
|
||||||
|
StructEnum { enum_: Enum },
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -184,7 +185,8 @@ fn wrong_tag() {
|
|||||||
`NewtypeMap`, \
|
`NewtypeMap`, \
|
||||||
`NewtypeStruct`, \
|
`NewtypeStruct`, \
|
||||||
`NewtypeEnum`, \
|
`NewtypeEnum`, \
|
||||||
`Struct`",
|
`Struct`, \
|
||||||
|
`StructEnum`",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,12 +462,6 @@ mod string_and_bytes {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn struct_variant_containing_unit_variant() {
|
fn struct_variant_containing_unit_variant() {
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
|
||||||
#[serde(tag = "tag")]
|
|
||||||
enum Message {
|
|
||||||
Log { level: Enum },
|
|
||||||
}
|
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Enum::Unit,
|
&Enum::Unit,
|
||||||
&[
|
&[
|
||||||
@ -475,18 +471,18 @@ fn struct_variant_containing_unit_variant() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
let value = Message::Log { level: Enum::Unit };
|
let value = InternallyTagged::StructEnum { enum_: Enum::Unit };
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&value,
|
&value,
|
||||||
&[
|
&[
|
||||||
Token::Struct {
|
Token::Struct {
|
||||||
name: "Message",
|
name: "InternallyTagged",
|
||||||
len: 2,
|
len: 2,
|
||||||
},
|
},
|
||||||
Token::Str("tag"),
|
Token::Str("tag"),
|
||||||
Token::Str("Log"),
|
Token::Str("StructEnum"),
|
||||||
Token::Str("level"),
|
Token::Str("enum_"),
|
||||||
Token::Enum { name: "Enum" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Unit"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
@ -499,8 +495,8 @@ fn struct_variant_containing_unit_variant() {
|
|||||||
&[
|
&[
|
||||||
Token::Map { len: Some(2) },
|
Token::Map { len: Some(2) },
|
||||||
Token::Str("tag"),
|
Token::Str("tag"),
|
||||||
Token::Str("Log"),
|
Token::Str("StructEnum"),
|
||||||
Token::Str("level"),
|
Token::Str("enum_"),
|
||||||
Token::Enum { name: "Enum" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Unit"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
@ -512,8 +508,8 @@ fn struct_variant_containing_unit_variant() {
|
|||||||
&value,
|
&value,
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("Log"),
|
Token::Str("StructEnum"), // tag
|
||||||
Token::Enum { name: "Enum" },
|
Token::Enum { name: "Enum" }, // enum_
|
||||||
Token::BorrowedStr("Unit"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user