Use name "tag" to refer to tag field

This commit is contained in:
Mingun 2023-08-07 21:15:21 +05:00
parent 9128201c78
commit eb59c776ca

View File

@ -21,7 +21,7 @@ struct Struct {
} }
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")] #[serde(tag = "tag")]
enum InternallyTagged { enum InternallyTagged {
Unit, Unit,
NewtypeNewtype(Newtype), NewtypeNewtype(Newtype),
@ -39,7 +39,7 @@ fn unit() {
name: "InternallyTagged", name: "InternallyTagged",
len: 1, len: 1,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Unit"), Token::Str("Unit"),
Token::StructEnd, Token::StructEnd,
], ],
@ -61,7 +61,7 @@ fn newtype_newtype() {
&InternallyTagged::NewtypeNewtype(Newtype(BTreeMap::new())), &InternallyTagged::NewtypeNewtype(Newtype(BTreeMap::new())),
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("type"), Token::Str("tag"),
Token::Str("NewtypeNewtype"), Token::Str("NewtypeNewtype"),
Token::MapEnd, Token::MapEnd,
], ],
@ -74,7 +74,7 @@ fn newtype_map() {
&InternallyTagged::NewtypeMap(BTreeMap::new()), &InternallyTagged::NewtypeMap(BTreeMap::new()),
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("type"), Token::Str("tag"),
Token::Str("NewtypeMap"), Token::Str("NewtypeMap"),
Token::MapEnd, Token::MapEnd,
], ],
@ -101,7 +101,7 @@ fn newtype_struct() {
name: "Struct", name: "Struct",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("NewtypeStruct"), Token::Str("NewtypeStruct"),
Token::Str("f"), Token::Str("f"),
Token::U8(6), Token::U8(6),
@ -129,7 +129,7 @@ fn struct_() {
name: "InternallyTagged", name: "InternallyTagged",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Struct"), Token::Str("Struct"),
Token::Str("a"), Token::Str("a"),
Token::U8(1), Token::U8(1),
@ -152,13 +152,13 @@ fn struct_() {
fn wrong_tag() { fn wrong_tag() {
assert_de_tokens_error::<InternallyTagged>( assert_de_tokens_error::<InternallyTagged>(
&[Token::Map { len: Some(0) }, Token::MapEnd], &[Token::Map { len: Some(0) }, Token::MapEnd],
"missing field `type`", "missing field `tag`",
); );
assert_de_tokens_error::<InternallyTagged>( assert_de_tokens_error::<InternallyTagged>(
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Z"), Token::Str("Z"),
Token::MapEnd, Token::MapEnd,
], ],
@ -169,14 +169,14 @@ fn wrong_tag() {
#[test] #[test]
fn untagged_variant() { fn untagged_variant() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "kind")] #[serde(tag = "tag")]
enum InternallyTagged { enum InternallyTagged {
Tagged { Tagged {
a: u8, a: u8,
}, },
#[serde(untagged)] #[serde(untagged)]
Untagged { Untagged {
kind: String, tag: String,
b: u8, b: u8,
}, },
} }
@ -185,7 +185,7 @@ fn untagged_variant() {
&InternallyTagged::Tagged { a: 1 }, &InternallyTagged::Tagged { a: 1 },
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("kind"), Token::Str("tag"),
Token::Str("Tagged"), Token::Str("Tagged"),
Token::Str("a"), Token::Str("a"),
Token::U8(1), Token::U8(1),
@ -200,7 +200,7 @@ fn untagged_variant() {
name: "InternallyTagged", name: "InternallyTagged",
len: 2, len: 2,
}, },
Token::Str("kind"), Token::Str("tag"),
Token::Str("Tagged"), Token::Str("Tagged"),
Token::Str("a"), Token::Str("a"),
Token::U8(1), Token::U8(1),
@ -210,12 +210,12 @@ fn untagged_variant() {
assert_de_tokens( assert_de_tokens(
&InternallyTagged::Untagged { &InternallyTagged::Untagged {
kind: "Foo".to_owned(), tag: "Foo".to_owned(),
b: 2, b: 2,
}, },
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("kind"), Token::Str("tag"),
Token::Str("Foo"), Token::Str("Foo"),
Token::Str("b"), Token::Str("b"),
Token::U8(2), Token::U8(2),
@ -225,7 +225,7 @@ fn untagged_variant() {
assert_tokens( assert_tokens(
&InternallyTagged::Untagged { &InternallyTagged::Untagged {
kind: "Foo".to_owned(), tag: "Foo".to_owned(),
b: 2, b: 2,
}, },
&[ &[
@ -233,7 +233,7 @@ fn untagged_variant() {
name: "InternallyTagged", name: "InternallyTagged",
len: 2, len: 2,
}, },
Token::Str("kind"), Token::Str("tag"),
Token::Str("Foo"), Token::Str("Foo"),
Token::Str("b"), Token::Str("b"),
Token::U8(2), Token::U8(2),
@ -243,7 +243,7 @@ fn untagged_variant() {
assert_tokens( assert_tokens(
&InternallyTagged::Untagged { &InternallyTagged::Untagged {
kind: "Tagged".to_owned(), tag: "Tagged".to_owned(),
b: 2, b: 2,
}, },
&[ &[
@ -251,7 +251,7 @@ fn untagged_variant() {
name: "InternallyTagged", name: "InternallyTagged",
len: 2, len: 2,
}, },
Token::Str("kind"), Token::Str("tag"),
Token::Str("Tagged"), Token::Str("Tagged"),
Token::Str("b"), Token::Str("b"),
Token::U8(2), Token::U8(2),
@ -264,7 +264,7 @@ mod string_and_bytes {
use super::*; use super::*;
#[derive(Debug, PartialEq, Deserialize)] #[derive(Debug, PartialEq, Deserialize)]
#[serde(tag = "type")] #[serde(tag = "tag")]
enum InternallyTagged { enum InternallyTagged {
String { String {
string: String, string: String,
@ -286,7 +286,7 @@ mod string_and_bytes {
name: "String", name: "String",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("String"), Token::Str("String"),
Token::Str("string"), Token::Str("string"),
Token::Str("\0"), Token::Str("\0"),
@ -303,7 +303,7 @@ mod string_and_bytes {
name: "String", name: "String",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("String"), Token::Str("String"),
Token::Str("string"), Token::Str("string"),
Token::String("\0"), Token::String("\0"),
@ -323,7 +323,7 @@ mod string_and_bytes {
name: "String", name: "String",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("String"), Token::Str("String"),
Token::Str("string"), Token::Str("string"),
Token::Bytes(b"\0"), Token::Bytes(b"\0"),
@ -340,7 +340,7 @@ mod string_and_bytes {
name: "String", name: "String",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("String"), Token::Str("String"),
Token::Str("string"), Token::Str("string"),
Token::ByteBuf(b"\0"), Token::ByteBuf(b"\0"),
@ -358,7 +358,7 @@ mod string_and_bytes {
name: "Bytes", name: "Bytes",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Bytes"), Token::Str("Bytes"),
Token::Str("bytes"), Token::Str("bytes"),
Token::Str("\0"), Token::Str("\0"),
@ -373,7 +373,7 @@ mod string_and_bytes {
name: "Bytes", name: "Bytes",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Bytes"), Token::Str("Bytes"),
Token::Str("bytes"), Token::Str("bytes"),
Token::String("\0"), Token::String("\0"),
@ -391,7 +391,7 @@ mod string_and_bytes {
name: "Bytes", name: "Bytes",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Bytes"), Token::Str("Bytes"),
Token::Str("bytes"), Token::Str("bytes"),
Token::Bytes(b"\0"), Token::Bytes(b"\0"),
@ -406,7 +406,7 @@ mod string_and_bytes {
name: "Bytes", name: "Bytes",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Bytes"), Token::Str("Bytes"),
Token::Str("bytes"), Token::Str("bytes"),
Token::ByteBuf(b"\0"), Token::ByteBuf(b"\0"),
@ -424,7 +424,7 @@ mod string_and_bytes {
name: "Bytes", name: "Bytes",
len: 2, len: 2,
}, },
Token::Str("type"), Token::Str("tag"),
Token::Str("Bytes"), Token::Str("Bytes"),
Token::Str("bytes"), Token::Str("bytes"),
Token::Seq { len: Some(1) }, Token::Seq { len: Some(1) },
@ -444,7 +444,7 @@ fn struct_variant_containing_unit_variant() {
} }
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "action")] #[serde(tag = "tag")]
pub enum Message { pub enum Message {
Log { level: Level }, Log { level: Level },
} }
@ -465,7 +465,7 @@ fn struct_variant_containing_unit_variant() {
name: "Message", name: "Message",
len: 2, len: 2,
}, },
Token::Str("action"), Token::Str("tag"),
Token::Str("Log"), Token::Str("Log"),
Token::Str("level"), Token::Str("level"),
Token::Enum { name: "Level" }, Token::Enum { name: "Level" },
@ -479,7 +479,7 @@ fn struct_variant_containing_unit_variant() {
&Message::Log { level: Level::Info }, &Message::Log { level: Level::Info },
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("action"), Token::Str("tag"),
Token::Str("Log"), Token::Str("Log"),
Token::Str("level"), Token::Str("level"),
Token::Enum { name: "Level" }, Token::Enum { name: "Level" },
@ -505,7 +505,7 @@ fn struct_variant_containing_unit_variant() {
#[test] #[test]
fn borrow() { fn borrow() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")] #[serde(tag = "tag")]
enum Input<'a> { enum Input<'a> {
Package { name: &'a str }, Package { name: &'a str },
} }
@ -517,7 +517,7 @@ fn borrow() {
name: "Input", name: "Input",
len: 2, len: 2,
}, },
Token::BorrowedStr("type"), Token::BorrowedStr("tag"),
Token::BorrowedStr("Package"), Token::BorrowedStr("Package"),
Token::BorrowedStr("name"), Token::BorrowedStr("name"),
Token::BorrowedStr("borrowed"), Token::BorrowedStr("borrowed"),
@ -529,7 +529,7 @@ fn borrow() {
#[test] #[test]
fn newtype_variant_containing_externally_tagged_enum() { fn newtype_variant_containing_externally_tagged_enum() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")] #[serde(tag = "tag")]
enum Outer { enum Outer {
Inner(Inner), Inner(Inner),
} }
@ -546,7 +546,7 @@ fn newtype_variant_containing_externally_tagged_enum() {
&Outer::Inner(Inner::Unit), &Outer::Inner(Inner::Unit),
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Inner"), Token::Str("Inner"),
Token::Str("Unit"), Token::Str("Unit"),
Token::Unit, Token::Unit,
@ -558,7 +558,7 @@ fn newtype_variant_containing_externally_tagged_enum() {
&Outer::Inner(Inner::Newtype(1)), &Outer::Inner(Inner::Newtype(1)),
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Inner"), Token::Str("Inner"),
Token::Str("Newtype"), Token::Str("Newtype"),
Token::U8(1), Token::U8(1),
@ -573,7 +573,7 @@ fn newtype_variant_containing_externally_tagged_enum() {
&Outer::Inner(Inner::Tuple(1, 1)), &Outer::Inner(Inner::Tuple(1, 1)),
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Inner"), Token::Str("Inner"),
Token::Str("Tuple"), Token::Str("Tuple"),
Token::TupleStruct { Token::TupleStruct {
@ -594,7 +594,7 @@ fn newtype_variant_containing_externally_tagged_enum() {
&Outer::Inner(Inner::Struct { f: 1 }), &Outer::Inner(Inner::Struct { f: 1 }),
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Inner"), Token::Str("Inner"),
Token::Str("Struct"), Token::Str("Struct"),
Token::Struct { Token::Struct {
@ -615,7 +615,7 @@ fn newtype_variant_containing_externally_tagged_enum() {
&Outer::Inner(Inner::Struct { f: 1 }), &Outer::Inner(Inner::Struct { f: 1 }),
&[ &[
Token::Map { len: Some(2) }, Token::Map { len: Some(2) },
Token::Str("type"), Token::Str("tag"),
Token::Str("Inner"), Token::Str("Inner"),
Token::Str("Struct"), Token::Str("Struct"),
Token::Seq { len: Some(1) }, Token::Seq { len: Some(1) },
@ -632,7 +632,7 @@ fn newtype_variant_containing_unit_struct() {
struct Info; struct Info;
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "topic")] #[serde(tag = "tag")]
enum Message { enum Message {
Info(Info), Info(Info),
} }
@ -641,7 +641,7 @@ fn newtype_variant_containing_unit_struct() {
&Message::Info(Info), &Message::Info(Info),
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("topic"), Token::Str("tag"),
Token::Str("Info"), Token::Str("Info"),
Token::MapEnd, Token::MapEnd,
], ],
@ -654,7 +654,7 @@ fn newtype_variant_containing_unit_struct() {
name: "Message", name: "Message",
len: 1, len: 1,
}, },
Token::Str("topic"), Token::Str("tag"),
Token::Str("Info"), Token::Str("Info"),
Token::StructEnd, Token::StructEnd,
], ],
@ -673,7 +673,7 @@ fn newtype_variant_containing_unit_struct() {
#[test] #[test]
fn with_skipped_conflict() { fn with_skipped_conflict() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "t")] #[serde(tag = "tag")]
enum Data { enum Data {
A, A,
#[serde(skip)] #[serde(skip)]
@ -696,7 +696,7 @@ fn with_skipped_conflict() {
name: "Data", name: "Data",
len: 1, len: 1,
}, },
Token::Str("t"), Token::Str("tag"),
Token::Str("C"), Token::Str("C"),
Token::StructEnd, Token::StructEnd,
], ],
@ -706,7 +706,7 @@ fn with_skipped_conflict() {
#[test] #[test]
fn containing_flatten() { fn containing_flatten() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "t")] #[serde(tag = "tag")]
enum Data { enum Data {
A { A {
a: i32, a: i32,
@ -729,7 +729,7 @@ fn containing_flatten() {
&data, &data,
&[ &[
Token::Map { len: None }, Token::Map { len: None },
Token::Str("t"), Token::Str("tag"),
Token::Str("A"), Token::Str("A"),
Token::Str("a"), Token::Str("a"),
Token::I32(0), Token::I32(0),
@ -743,7 +743,7 @@ fn containing_flatten() {
#[test] #[test]
fn newtype_variant_containing_unit() { fn newtype_variant_containing_unit() {
#[derive(Debug, PartialEq, Serialize, Deserialize)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "t")] #[serde(tag = "tag")]
enum Data { enum Data {
A(()), A(()),
} }
@ -752,7 +752,7 @@ fn newtype_variant_containing_unit() {
&Data::A(()), &Data::A(()),
&[ &[
Token::Map { len: Some(1) }, Token::Map { len: Some(1) },
Token::Str("t"), Token::Str("tag"),
Token::Str("A"), Token::Str("A"),
Token::MapEnd, Token::MapEnd,
], ],
@ -762,7 +762,7 @@ fn newtype_variant_containing_unit() {
#[test] #[test]
fn unit_variant_with_unknown_fields() { fn unit_variant_with_unknown_fields() {
#[derive(Debug, PartialEq, Deserialize)] #[derive(Debug, PartialEq, Deserialize)]
#[serde(tag = "t")] #[serde(tag = "tag")]
enum Data { enum Data {
A, A,
} }
@ -773,7 +773,7 @@ fn unit_variant_with_unknown_fields() {
&data, &data,
&[ &[
Token::Map { len: None }, Token::Map { len: None },
Token::Str("t"), Token::Str("tag"),
Token::Str("A"), Token::Str("A"),
Token::Str("b"), Token::Str("b"),
Token::I32(0), Token::I32(0),