mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 16:08:05 +00:00
Merge pull request 1914 from Mingun/seq-other
This commit is contained in:
@@ -614,12 +614,7 @@ const _: () = {
|
||||
1u64 => _serde::__private::Ok(__Field::__field1),
|
||||
2u64 => _serde::__private::Ok(__Field::__field2),
|
||||
3u64 => _serde::__private::Ok(__Field::__field3),
|
||||
_ => _serde::__private::Err(
|
||||
_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 4",
|
||||
),
|
||||
),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
@@ -1152,12 +1147,7 @@ const _: () = {
|
||||
1u64 => _serde::__private::Ok(__Field::__field1),
|
||||
2u64 => _serde::__private::Ok(__Field::__field2),
|
||||
3u64 => _serde::__private::Ok(__Field::__field3),
|
||||
_ => _serde::__private::Err(
|
||||
_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 4",
|
||||
),
|
||||
),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -77,10 +77,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
@@ -284,10 +281,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -394,12 +394,7 @@ const _: () = {
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
1u64 => _serde::__private::Ok(__Field::__field1),
|
||||
_ => _serde::__private::Err(
|
||||
_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 2",
|
||||
),
|
||||
),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -73,10 +73,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
@@ -280,10 +277,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -281,12 +281,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(
|
||||
_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
),
|
||||
),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
@@ -494,12 +489,7 @@ const _: () = {
|
||||
{
|
||||
match __value {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
_ => _serde::__private::Err(
|
||||
_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 1",
|
||||
),
|
||||
),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -100,10 +100,7 @@ const _: () = {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
1u64 => _serde::__private::Ok(__Field::__field1),
|
||||
2u64 => _serde::__private::Ok(__Field::__field2),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 3",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
@@ -415,10 +412,7 @@ const _: () = {
|
||||
0u64 => _serde::__private::Ok(__Field::__field0),
|
||||
1u64 => _serde::__private::Ok(__Field::__field1),
|
||||
2u64 => _serde::__private::Ok(__Field::__field2),
|
||||
_ => _serde::__private::Err(_serde::de::Error::invalid_value(
|
||||
_serde::de::Unexpected::Unsigned(__value),
|
||||
&"field index 0 <= i < 3",
|
||||
)),
|
||||
_ => _serde::__private::Ok(__Field::__ignore),
|
||||
}
|
||||
}
|
||||
fn visit_str<__E>(
|
||||
|
||||
@@ -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)],
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
//! Tests for `#[serde(field_identifier)]` and `#[serde(variant_identifier)]`
|
||||
use serde::Deserialize;
|
||||
use serde_test::{assert_de_tokens, Token};
|
||||
|
||||
@@ -27,6 +28,10 @@ fn test_field_identifier() {
|
||||
Bbb,
|
||||
}
|
||||
|
||||
assert_de_tokens(&F::Aaa, &[Token::U8(0)]);
|
||||
assert_de_tokens(&F::Aaa, &[Token::U16(0)]);
|
||||
assert_de_tokens(&F::Aaa, &[Token::U32(0)]);
|
||||
assert_de_tokens(&F::Aaa, &[Token::U64(0)]);
|
||||
assert_de_tokens(&F::Aaa, &[Token::Str("aaa")]);
|
||||
assert_de_tokens(&F::Aaa, &[Token::Bytes(b"aaa")]);
|
||||
}
|
||||
@@ -42,6 +47,10 @@ fn test_unit_fallthrough() {
|
||||
Other,
|
||||
}
|
||||
|
||||
assert_de_tokens(&F::Other, &[Token::U8(42)]);
|
||||
assert_de_tokens(&F::Other, &[Token::U16(42)]);
|
||||
assert_de_tokens(&F::Other, &[Token::U32(42)]);
|
||||
assert_de_tokens(&F::Other, &[Token::U64(42)]);
|
||||
assert_de_tokens(&F::Other, &[Token::Str("x")]);
|
||||
}
|
||||
|
||||
@@ -68,5 +77,9 @@ fn test_newtype_fallthrough_generic() {
|
||||
Other(T),
|
||||
}
|
||||
|
||||
assert_de_tokens(&F::Other(42u8), &[Token::U8(42)]);
|
||||
assert_de_tokens(&F::Other(42u16), &[Token::U16(42)]);
|
||||
assert_de_tokens(&F::Other(42u32), &[Token::U32(42)]);
|
||||
assert_de_tokens(&F::Other(42u64), &[Token::U64(42)]);
|
||||
assert_de_tokens(&F::Other("x".to_owned()), &[Token::Str("x")]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user