mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-07-21 08:35:47 +00:00
Use helper function to build __field{}
This commit is contained in:
@@ -498,8 +498,7 @@ fn deserialize_item_enum(
|
|||||||
// Match arms to extract a variant from a string
|
// Match arms to extract a variant from a string
|
||||||
let mut variant_arms = vec![];
|
let mut variant_arms = vec![];
|
||||||
for (i, variant) in variants.iter().filter(|variant| !variant.attrs.skip_deserializing()).enumerate() {
|
for (i, variant) in variants.iter().filter(|variant| !variant.attrs.skip_deserializing()).enumerate() {
|
||||||
let variant_name = Ident::new(format!("__field{}", i));
|
let variant_name = field_i(i);
|
||||||
let variant_name = quote!(__Field::#variant_name);
|
|
||||||
|
|
||||||
let block = deserialize_variant(
|
let block = deserialize_variant(
|
||||||
type_ident,
|
type_ident,
|
||||||
@@ -510,7 +509,7 @@ fn deserialize_item_enum(
|
|||||||
);
|
);
|
||||||
|
|
||||||
let arm = quote! {
|
let arm = quote! {
|
||||||
#variant_name => #block
|
__Field::#variant_name => #block
|
||||||
};
|
};
|
||||||
variant_arms.push(arm);
|
variant_arms.push(arm);
|
||||||
}
|
}
|
||||||
@@ -634,9 +633,7 @@ fn deserialize_field_visitor(
|
|||||||
is_variant: bool,
|
is_variant: bool,
|
||||||
) -> Tokens {
|
) -> Tokens {
|
||||||
// Create the field names for the fields.
|
// Create the field names for the fields.
|
||||||
let field_idents: &Vec<_> = &(0 .. field_names.len())
|
let field_idents: &Vec<_> = &(0 .. field_names.len()).map(field_i).collect();
|
||||||
.map(|i| Ident::new(format!("__field{}", i)))
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
let ignore_variant = if is_variant || item_attrs.deny_unknown_fields() {
|
let ignore_variant = if is_variant || item_attrs.deny_unknown_fields() {
|
||||||
None
|
None
|
||||||
@@ -749,8 +746,7 @@ fn deserialize_map(
|
|||||||
// Create the field names for the fields.
|
// Create the field names for the fields.
|
||||||
let fields_names = fields.iter()
|
let fields_names = fields.iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.map(|(i, field)|
|
.map(|(i, field)| (field, field_i(i)))
|
||||||
(field, Ident::new(format!("__field{}", i))))
|
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// Declare each field that will be deserialized.
|
// Declare each field that will be deserialized.
|
||||||
|
|||||||
Reference in New Issue
Block a user