Skip to content

Commit ee85e63

Browse files
committed
fixup
1 parent 99c0222 commit ee85e63

File tree

1 file changed

+22
-28
lines changed

1 file changed

+22
-28
lines changed

irpc-derive/src/lib.rs

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,13 @@ pub fn rpc_requests(attr: TokenStream, item: TokenStream) -> TokenStream {
236236
}
237237
},
238238
Some(name) => {
239-
let struc = struct_from_variant_fields(name.clone(), &variant.fields);
239+
let struc = struct_from_variant_fields(name.clone(), variant.fields.clone());
240240
wrapper_types.push(quote! {
241-
#[derive(Debug, ::serde::Serialize, ::serde::Deserialize)]
241+
#[derive(::std::fmt::Debug, ::serde::Serialize, ::serde::Deserialize)]
242242
#struc
243243
});
244244
let ty = type_from_ident(name);
245-
variant.fields = fields_single_unnamed(ty.clone());
245+
variant.fields = single_unnamed_field(ty.clone());
246246
ty
247247
}
248248
};
@@ -292,7 +292,7 @@ pub fn rpc_requests(attr: TokenStream, item: TokenStream) -> TokenStream {
292292
// Create the message enum definition
293293
let message_enum = quote! {
294294
#[allow(missing_docs)]
295-
#[derive(Debug)]
295+
#[derive(::std::fmt::Debug)]
296296
#vis enum #message_enum_name {
297297
#(#message_variants),*
298298
}
@@ -562,8 +562,7 @@ fn type_from_ident(ident: Ident) -> Type {
562562
},
563563
})
564564
}
565-
fn struct_from_variant_fields(name: Ident, fields: &Fields) -> syn::ItemStruct {
566-
let mut fields = fields.clone();
565+
fn struct_from_variant_fields(name: Ident, mut fields: Fields) -> syn::ItemStruct {
567566
make_fields_public(&mut fields);
568567
let span = name.span();
569568
syn::ItemStruct {
@@ -577,19 +576,11 @@ fn struct_from_variant_fields(name: Ident, fields: &Fields) -> syn::ItemStruct {
577576
Fields::Unnamed(_) => Some(Token![;](span)),
578577
Fields::Named(_) => None,
579578
},
580-
fields: fields.clone(),
579+
fields,
581580
}
582581
}
583582

584-
fn vis_pub() -> syn::Visibility {
585-
syn::Visibility::Public(syn::VisPublic {
586-
pub_token: syn::token::Pub {
587-
span: proc_macro2::Span::call_site(),
588-
},
589-
})
590-
}
591-
592-
fn fields_single_unnamed(ty: Type) -> Fields {
583+
fn single_unnamed_field(ty: Type) -> Fields {
593584
let field = syn::Field {
594585
attrs: vec![],
595586
vis: syn::Visibility::Inherited,
@@ -604,17 +595,20 @@ fn fields_single_unnamed(ty: Type) -> Fields {
604595
}
605596

606597
fn make_fields_public(fields: &mut Fields) {
607-
match fields {
608-
Fields::Named(named) => {
609-
for field in &mut named.named {
610-
field.vis = vis_pub();
611-
}
612-
}
613-
Fields::Unnamed(unnamed) => {
614-
for field in &mut unnamed.unnamed {
615-
field.vis = vis_pub();
616-
}
617-
}
618-
Fields::Unit => {}
598+
let inner = match fields {
599+
Fields::Named(ref mut named) => named.named.iter_mut(),
600+
Fields::Unnamed(ref mut unnamed) => unnamed.unnamed.iter_mut(),
601+
Fields::Unit => return,
602+
};
603+
for field in inner {
604+
field.vis = vis_pub();
619605
}
620606
}
607+
608+
fn vis_pub() -> syn::Visibility {
609+
syn::Visibility::Public(syn::VisPublic {
610+
pub_token: syn::token::Pub {
611+
span: proc_macro2::Span::call_site(),
612+
},
613+
})
614+
}

0 commit comments

Comments
 (0)