Eliminate unnecessary braces in wrap_deserialize_variant_with

This commit is contained in:
David Tolnay
2018-04-12 23:48:38 -07:00
parent 202c10147e
commit 1157ac0118
+15 -23
View File
@@ -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)