Merge pull request 1914 from Mingun/seq-other

This commit is contained in:
David Tolnay
2021-01-23 19:45:15 -08:00
11 changed files with 216 additions and 63 deletions
+141
View File
@@ -622,6 +622,24 @@ declare_tests! {
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U8(0),
Token::I32(1),
Token::U8(1),
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U16(0),
Token::I32(1),
Token::U16(1),
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U32(0),
@@ -631,6 +649,34 @@ declare_tests! {
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U64(0),
Token::I32(1),
Token::U64(1),
Token::I32(2),
Token::MapEnd,
],
// Mixed key types
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U8(0),
Token::I32(1),
Token::U64(1),
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U8(0),
Token::I32(1),
Token::Str("b"),
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Struct { name: "Struct", len: 2 },
Token::Str("a"),
@@ -647,6 +693,46 @@ declare_tests! {
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 {
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
@@ -663,6 +749,21 @@ declare_tests! {
Token::I32(4),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Map { len: Some(3) },
Token::U8(0),
Token::I32(1),
Token::U16(1),
Token::I32(2),
Token::U32(2),
Token::I32(3),
Token::U64(3),
Token::I32(4),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::Struct { name: "Struct", len: 2 },
Token::Str("a"),
@@ -780,6 +881,26 @@ declare_tests! {
Token::Str("Unit"),
Token::Unit,
],
EnumOther::Unit => &[
Token::Enum { name: "EnumOther" },
Token::U8(0),
Token::Unit,
],
EnumOther::Unit => &[
Token::Enum { name: "EnumOther" },
Token::U16(0),
Token::Unit,
],
EnumOther::Unit => &[
Token::Enum { name: "EnumOther" },
Token::U32(0),
Token::Unit,
],
EnumOther::Unit => &[
Token::Enum { name: "EnumOther" },
Token::U64(0),
Token::Unit,
],
}
test_enum_other {
EnumOther::Other => &[
@@ -787,6 +908,26 @@ declare_tests! {
Token::Str("Foo"),
Token::Unit,
],
EnumOther::Other => &[
Token::Enum { name: "EnumOther" },
Token::U8(42),
Token::Unit,
],
EnumOther::Other => &[
Token::Enum { name: "EnumOther" },
Token::U16(42),
Token::Unit,
],
EnumOther::Other => &[
Token::Enum { name: "EnumOther" },
Token::U32(42),
Token::Unit,
],
EnumOther::Other => &[
Token::Enum { name: "EnumOther" },
Token::U64(42),
Token::Unit,
],
}
test_box {
Box::new(0i32) => &[Token::I32(0)],