Merge pull request #956 from sfackler/int-field
Support deserialization of struct keys from integers
This commit is contained in:
commit
b37d47c987
@ -1386,7 +1386,6 @@ fn deserialize_identifier(
|
|||||||
"field identifier"
|
"field identifier"
|
||||||
};
|
};
|
||||||
|
|
||||||
let visit_index = if is_variant {
|
|
||||||
let variant_indices = 0u32..;
|
let variant_indices = 0u32..;
|
||||||
let fallthrough_msg = format!("variant index 0 <= i < {}", fields.len());
|
let fallthrough_msg = format!("variant index 0 <= i < {}", fields.len());
|
||||||
let visit_index = quote! {
|
let visit_index = quote! {
|
||||||
@ -1403,10 +1402,6 @@ fn deserialize_identifier(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Some(visit_index)
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
};
|
|
||||||
|
|
||||||
let bytes_to_str = if fallthrough.is_some() {
|
let bytes_to_str = if fallthrough.is_some() {
|
||||||
None
|
None
|
||||||
|
@ -605,6 +605,17 @@ declare_tests! {
|
|||||||
Token::StructEnd,
|
Token::StructEnd,
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
test_struct_integer_keys {
|
||||||
|
Struct { a: 1, b: 2, c: 0 } => &[
|
||||||
|
Token::Struct { name: "Struct", len: 2 },
|
||||||
|
Token::U32(0),
|
||||||
|
Token::I32(1),
|
||||||
|
|
||||||
|
Token::U32(1),
|
||||||
|
Token::I32(2),
|
||||||
|
Token::StructEnd,
|
||||||
|
],
|
||||||
|
}
|
||||||
test_enum_unit {
|
test_enum_unit {
|
||||||
Enum::Unit => &[
|
Enum::Unit => &[
|
||||||
Token::UnitVariant { name: "Enum", variant: "Unit" },
|
Token::UnitVariant { name: "Enum", variant: "Unit" },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user