Reuse type in newtype_variant_containing_unit

This commit is contained in:
Mingun
2023-08-07 21:47:55 +05:00
parent f97160f715
commit 2d75ef6b30
@@ -24,6 +24,7 @@ struct Struct {
#[serde(tag = "tag")] #[serde(tag = "tag")]
enum InternallyTagged { enum InternallyTagged {
Unit, Unit,
NewtypeUnit(()),
NewtypeNewtype(Newtype), NewtypeNewtype(Newtype),
NewtypeMap(BTreeMap<String, String>), NewtypeMap(BTreeMap<String, String>),
NewtypeStruct(Struct), NewtypeStruct(Struct),
@@ -162,7 +163,13 @@ fn wrong_tag() {
Token::Str("Z"), Token::Str("Z"),
Token::MapEnd, Token::MapEnd,
], ],
"unknown variant `Z`, expected one of `Unit`, `NewtypeNewtype`, `NewtypeMap`, `NewtypeStruct`, `Struct`", "unknown variant `Z`, expected one of \
`Unit`, \
`NewtypeUnit`, \
`NewtypeNewtype`, \
`NewtypeMap`, \
`NewtypeStruct`, \
`Struct`",
); );
} }
@@ -742,18 +749,14 @@ fn containing_flatten() {
#[test] #[test]
fn newtype_variant_containing_unit() { fn newtype_variant_containing_unit() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] let value = InternallyTagged::NewtypeUnit(());
#[serde(tag = "tag")]
enum Data {
A(()),
}
assert_tokens( assert_tokens(
&Data::A(()), &value,
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("tag"), Token::Str("tag"),
Token::Str("A"), Token::Str("NewtypeUnit"),
Token::MapEnd, Token::MapEnd,
], ],
); );