mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-09 20:11:01 +00:00
Merge pull request 2560 from Mingun/honest-test
This commit is contained in:
@@ -313,6 +313,8 @@ mod content {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Used to capture data in [`Content`] from other deserializers.
|
||||||
|
/// Cannot capture externally tagged enums, `i128` and `u128`.
|
||||||
struct ContentVisitor<'de> {
|
struct ContentVisitor<'de> {
|
||||||
value: PhantomData<Content<'de>>,
|
value: PhantomData<Content<'de>>,
|
||||||
}
|
}
|
||||||
@@ -528,6 +530,8 @@ mod content {
|
|||||||
Content(Content<'de>),
|
Content(Content<'de>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Serves as a seed for deserializing a key of internally tagged enum.
|
||||||
|
/// Cannot capture externally tagged enums, `i128` and `u128`.
|
||||||
struct TagOrContentVisitor<'de> {
|
struct TagOrContentVisitor<'de> {
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
value: PhantomData<TagOrContent<'de>>,
|
value: PhantomData<TagOrContent<'de>>,
|
||||||
@@ -814,6 +818,9 @@ mod content {
|
|||||||
|
|
||||||
/// Used by generated code to deserialize an internally tagged enum.
|
/// Used by generated code to deserialize an internally tagged enum.
|
||||||
///
|
///
|
||||||
|
/// Captures map or sequence from the original deserializer and searches
|
||||||
|
/// a tag in it (in case of sequence, tag is the first element of sequence).
|
||||||
|
///
|
||||||
/// Not public API.
|
/// Not public API.
|
||||||
pub struct TaggedContentVisitor<T> {
|
pub struct TaggedContentVisitor<T> {
|
||||||
tag_name: &'static str,
|
tag_name: &'static str,
|
||||||
|
|||||||
@@ -1081,6 +1081,15 @@ fn test_internally_tagged_struct_variant_containing_unit_variant() {
|
|||||||
Log { level: Level },
|
Log { level: Level },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert_de_tokens(
|
||||||
|
&Level::Info,
|
||||||
|
&[
|
||||||
|
Token::Enum { name: "Level" },
|
||||||
|
Token::BorrowedStr("Info"),
|
||||||
|
Token::Unit,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&Message::Log { level: Level::Info },
|
&Message::Log { level: Level::Info },
|
||||||
&[
|
&[
|
||||||
@@ -1091,7 +1100,9 @@ fn test_internally_tagged_struct_variant_containing_unit_variant() {
|
|||||||
Token::Str("action"),
|
Token::Str("action"),
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
Token::Str("level"),
|
Token::Str("level"),
|
||||||
|
Token::Enum { name: "Level" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Info"),
|
||||||
|
Token::Unit,
|
||||||
Token::StructEnd,
|
Token::StructEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@@ -1103,7 +1114,9 @@ fn test_internally_tagged_struct_variant_containing_unit_variant() {
|
|||||||
Token::Str("action"),
|
Token::Str("action"),
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
Token::Str("level"),
|
Token::Str("level"),
|
||||||
|
Token::Enum { name: "Level" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Info"),
|
||||||
|
Token::Unit,
|
||||||
Token::MapEnd,
|
Token::MapEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@@ -1113,7 +1126,9 @@ fn test_internally_tagged_struct_variant_containing_unit_variant() {
|
|||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(2) },
|
Token::Seq { len: Some(2) },
|
||||||
Token::Str("Log"),
|
Token::Str("Log"),
|
||||||
|
Token::Enum { name: "Level" },
|
||||||
Token::BorrowedStr("Info"),
|
Token::BorrowedStr("Info"),
|
||||||
|
Token::Unit,
|
||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user