mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-14 23:11:01 +00:00
Share externally tagged enum Enum between all tests and reuse in struct_variant_containing_unit_variant
This commit is contained in:
@@ -23,6 +23,14 @@ struct Struct {
|
|||||||
f: u8,
|
f: u8,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
|
enum Enum {
|
||||||
|
Unit,
|
||||||
|
Newtype(u8),
|
||||||
|
Tuple(u8, u8),
|
||||||
|
Struct { f: u8 },
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(tag = "tag")]
|
#[serde(tag = "tag")]
|
||||||
enum InternallyTagged {
|
enum InternallyTagged {
|
||||||
@@ -450,28 +458,25 @@ mod string_and_bytes {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn struct_variant_containing_unit_variant() {
|
fn struct_variant_containing_unit_variant() {
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
|
||||||
pub enum Level {
|
|
||||||
Info,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[serde(tag = "tag")]
|
#[serde(tag = "tag")]
|
||||||
pub enum Message {
|
enum Message {
|
||||||
Log { level: Level },
|
Log { level: Enum },
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Level::Info,
|
&Enum::Unit,
|
||||||
&[
|
&[
|
||||||
Token::Enum { name: "Level" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let value = Message::Log { level: Enum::Unit };
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Message::Log { level: Level::Info },
|
&value,
|
||||||
&[
|
&[
|
||||||
Token::Struct {
|
Token::Struct {
|
||||||
name: "Message",
|
name: "Message",
|
||||||
@@ -480,34 +485,34 @@ fn struct_variant_containing_unit_variant() {
|
|||||||
Token::Str("tag"),
|
Token::Str("tag"),
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
Token::Str("level"),
|
Token::Str("level"),
|
||||||
Token::Enum { name: "Level" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
Token::StructEnd,
|
Token::StructEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Message::Log { level: Level::Info },
|
&value,
|
||||||
&[
|
&[
|
||||||
Token::Map { len: Some(2) },
|
Token::Map { len: Some(2) },
|
||||||
Token::Str("tag"),
|
Token::Str("tag"),
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
Token::Str("level"),
|
Token::Str("level"),
|
||||||
Token::Enum { name: "Level" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Message::Log { level: Level::Info },
|
&value,
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
Token::Enum { name: "Level" },
|
Token::Enum { name: "Enum" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Unit"),
|
||||||
Token::Unit,
|
Token::Unit,
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
@@ -546,14 +551,6 @@ fn newtype_variant_containing_externally_tagged_enum() {
|
|||||||
Inner(Enum),
|
Inner(Enum),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
|
||||||
enum Enum {
|
|
||||||
Unit,
|
|
||||||
Newtype(u8),
|
|
||||||
Tuple(u8, u8),
|
|
||||||
Struct { f: u8 },
|
|
||||||
}
|
|
||||||
|
|
||||||
assert_tokens(
|
assert_tokens(
|
||||||
&Outer::Inner(Enum::Unit),
|
&Outer::Inner(Enum::Unit),
|
||||||
&[
|
&[
|
||||||
|
|||||||
Reference in New Issue
Block a user