@@ -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
606597fn 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