Extend test_internally_tagged_newtype_variant_containing_unit_struct to cover structs and seqs

This commit is contained in:
Mingun 2020-11-03 21:55:57 +05:00
parent 3257851192
commit b60c03ec3f
2 changed files with 21 additions and 1 deletions

View File

@ -1287,8 +1287,9 @@ mod content {
// } // }
// //
// We want {"topic":"Info"} to deserialize even though // We want {"topic":"Info"} to deserialize even though
// ordinarily unit structs do not deserialize from empty map. // ordinarily unit structs do not deserialize from empty map/seq.
Content::Map(ref v) if v.is_empty() => visitor.visit_unit(), Content::Map(ref v) if v.is_empty() => visitor.visit_unit(),
Content::Seq(ref v) if v.is_empty() => visitor.visit_unit(),
_ => self.deserialize_any(visitor), _ => self.deserialize_any(visitor),
} }
} }

View File

@ -1899,6 +1899,25 @@ fn test_internally_tagged_newtype_variant_containing_unit_struct() {
Token::MapEnd, Token::MapEnd,
], ],
); );
assert_de_tokens(
&Message::Info(Info),
&[
Token::Struct { name: "Message", len: 1 },
Token::Str("topic"),
Token::Str("Info"),
Token::StructEnd,
],
);
assert_de_tokens(
&Message::Info(Info),
&[
Token::Seq { len: Some(1) },
Token::Str("Info"),
Token::SeqEnd,
],
);
} }
#[deny(safe_packed_borrows)] #[deny(safe_packed_borrows)]