mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-28 13:30:48 +00:00
Allow borrowed and owned strings and bytes and u8, u16, u64 for variant keys in serde_test
This commit is contained in:
parent
0737474640
commit
e80571751d
@ -168,14 +168,42 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> {
|
|||||||
self.next_token();
|
self.next_token();
|
||||||
visitor.visit_str(variant)
|
visitor.visit_str(variant)
|
||||||
}
|
}
|
||||||
|
(Token::BorrowedStr(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_borrowed_str(variant)
|
||||||
|
}
|
||||||
|
(Token::String(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_string(variant.to_string())
|
||||||
|
}
|
||||||
(Token::Bytes(variant), Token::Unit) => {
|
(Token::Bytes(variant), Token::Unit) => {
|
||||||
self.next_token();
|
self.next_token();
|
||||||
visitor.visit_bytes(variant)
|
visitor.visit_bytes(variant)
|
||||||
}
|
}
|
||||||
|
(Token::BorrowedBytes(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_borrowed_bytes(variant)
|
||||||
|
}
|
||||||
|
(Token::ByteBuf(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_byte_buf(variant.to_vec())
|
||||||
|
}
|
||||||
|
(Token::U8(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_u8(variant)
|
||||||
|
}
|
||||||
|
(Token::U16(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_u16(variant)
|
||||||
|
}
|
||||||
(Token::U32(variant), Token::Unit) => {
|
(Token::U32(variant), Token::Unit) => {
|
||||||
self.next_token();
|
self.next_token();
|
||||||
visitor.visit_u32(variant)
|
visitor.visit_u32(variant)
|
||||||
}
|
}
|
||||||
|
(Token::U64(variant), Token::Unit) => {
|
||||||
|
self.next_token();
|
||||||
|
visitor.visit_u64(variant)
|
||||||
|
}
|
||||||
(variant, Token::Unit) => unexpected!(variant),
|
(variant, Token::Unit) => unexpected!(variant),
|
||||||
(variant, _) => {
|
(variant, _) => {
|
||||||
visitor.visit_map(EnumMapVisitor::new(self, variant, EnumFormat::Any))
|
visitor.visit_map(EnumMapVisitor::new(self, variant, EnumFormat::Any))
|
||||||
|
@ -693,6 +693,46 @@ declare_tests! {
|
|||||||
Token::SeqEnd,
|
Token::SeqEnd,
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
test_struct_borrowed_keys {
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::BorrowedStr("a"),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::BorrowedStr("b"),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Struct { name: "Struct", len: 2 },
|
||||||
|
Token::BorrowedStr("a"),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::BorrowedStr("b"),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
}
|
||||||
|
test_struct_owned_keys {
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Map { len: Some(3) },
|
||||||
|
Token::String("a"),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::String("b"),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::MapEnd,
|
||||||
|
],
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Struct { name: "Struct", len: 2 },
|
||||||
|
Token::String("a"),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::String("b"),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
}
|
||||||
test_struct_with_skip {
|
test_struct_with_skip {
|
||||||
Struct { a: 1, b: 2, c: 0 } => &[
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
Token::Map { len: Some(3) },
|
Token::Map { len: Some(3) },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user