1- use quote:: quote;
21use proc_macro2:: { Ident , Span } ;
2+ use quote:: quote;
33use syn:: { Fields , FieldsNamed , FieldsUnnamed , Type } ;
44
55pub enum Field {
6- Default {
7- name : Ident ,
8- ty : Type ,
9- }
6+ Default { name : Ident , ty : Type } ,
107}
118
129pub fn parse_fields ( fields : & Fields ) -> Vec < Field > {
@@ -18,20 +15,29 @@ pub fn parse_fields(fields: &Fields) -> Vec<Field> {
1815}
1916
2017fn parse_named_fields ( fields : & FieldsNamed ) -> Vec < Field > {
21- fields. named . iter ( ) . map ( |field| {
22- let mut name = field. ident . clone ( ) . unwrap ( ) ;
23- name. set_span ( Span :: call_site ( ) ) ;
24- let ty = field. ty . clone ( ) ;
25- Field :: Default { name, ty }
26- } ) . collect ( )
18+ fields
19+ . named
20+ . iter ( )
21+ . map ( |field| {
22+ let mut name = field. ident . clone ( ) . unwrap ( ) ;
23+ name. set_span ( Span :: call_site ( ) ) ;
24+ let ty = field. ty . clone ( ) ;
25+ Field :: Default { name, ty }
26+ } )
27+ . collect ( )
2728}
2829
2930fn parse_unnamed_fields ( fields : & FieldsUnnamed ) -> Vec < Field > {
30- fields. unnamed . iter ( ) . enumerate ( ) . map ( |( index, field) | {
31- let name = Ident :: new ( & format ! ( "field_{}" , index) , Span :: call_site ( ) ) ;
32- let ty = field. ty . clone ( ) ;
33- Field :: Default { name, ty }
34- } ) . collect ( )
31+ fields
32+ . unnamed
33+ . iter ( )
34+ . enumerate ( )
35+ . map ( |( index, field) | {
36+ let name = Ident :: new ( & format ! ( "field_{}" , index) , Span :: call_site ( ) ) ;
37+ let ty = field. ty . clone ( ) ;
38+ Field :: Default { name, ty }
39+ } )
40+ . collect ( )
3541}
3642
3743impl Field {
0 commit comments