mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-19 21:31:04 +00:00
Eliminate unnecessary braces in wrap_deserialize_variant_with
This commit is contained in:
+15
-23
@@ -2600,36 +2600,28 @@ fn wrap_deserialize_variant_with(
|
|||||||
let unwrap_fn = match variant.style {
|
let unwrap_fn = match variant.style {
|
||||||
Style::Struct if variant.fields.len() == 1 => {
|
Style::Struct if variant.fields.len() == 1 => {
|
||||||
let field_ident = variant.fields[0].ident.unwrap();
|
let field_ident = variant.fields[0].ident.unwrap();
|
||||||
quote!({
|
quote! {
|
||||||
|__wrap| {
|
|__wrap| #this::#variant_ident { #field_ident: __wrap.value }
|
||||||
#this::#variant_ident { #field_ident: __wrap.value }
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
Style::Struct => {
|
Style::Struct => {
|
||||||
let field_idents = variant
|
let field_idents = variant
|
||||||
.fields
|
.fields
|
||||||
.iter()
|
.iter()
|
||||||
.map(|field| field.ident.as_ref().unwrap());
|
.map(|field| field.ident.as_ref().unwrap());
|
||||||
quote!({
|
quote! {
|
||||||
|__wrap| {
|
|__wrap| #this::#variant_ident { #(#field_idents: __wrap.value.#field_access),* }
|
||||||
#this::#variant_ident { #(#field_idents: __wrap.value.#field_access),* }
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
Style::Tuple => quote!({
|
Style::Tuple => quote! {
|
||||||
|__wrap| {
|
|__wrap| #this::#variant_ident(#(__wrap.value.#field_access),*)
|
||||||
#this::#variant_ident(#(__wrap.value.#field_access),*)
|
},
|
||||||
}
|
Style::Newtype => quote! {
|
||||||
}),
|
|__wrap| #this::#variant_ident(__wrap.value)
|
||||||
Style::Newtype => quote!({
|
},
|
||||||
|__wrap| {
|
Style::Unit => quote! {
|
||||||
#this::#variant_ident(__wrap.value)
|
|__wrap| #this::#variant_ident
|
||||||
}
|
},
|
||||||
}),
|
|
||||||
Style::Unit => quote!({
|
|
||||||
|__wrap| { #this::#variant_ident }
|
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
(wrapper, wrapper_ty, unwrap_fn)
|
(wrapper, wrapper_ty, unwrap_fn)
|
||||||
|
|||||||
Reference in New Issue
Block a user