@@ -138,43 +138,6 @@ impl Fields {
138
138
/// self.a.clone() }`. For structs with unnamed fields, `Self { 0:
139
139
/// self.0.clone() }`. And for unit structs, `Self {}`.
140
140
pub fn members ( & self ) -> impl Iterator < Item = Member > + Clone + ' _ {
141
- struct Members < ' a > {
142
- fields : punctuated:: Iter < ' a , Field > ,
143
- index : u32 ,
144
- }
145
-
146
- impl < ' a > Iterator for Members < ' a > {
147
- type Item = Member ;
148
-
149
- fn next ( & mut self ) -> Option < Self :: Item > {
150
- let field = self . fields . next ( ) ?;
151
- let member = match & field. ident {
152
- Some ( ident) => Member :: Named ( ident. clone ( ) ) ,
153
- None => {
154
- #[ cfg( all( feature = "parsing" , feature = "printing" ) ) ]
155
- let span = crate :: spanned:: Spanned :: span ( & field. ty ) ;
156
- #[ cfg( not( all( feature = "parsing" , feature = "printing" ) ) ) ]
157
- let span = proc_macro2:: Span :: call_site ( ) ;
158
- Member :: Unnamed ( Index {
159
- index : self . index ,
160
- span,
161
- } )
162
- }
163
- } ;
164
- self . index += 1 ;
165
- Some ( member)
166
- }
167
- }
168
-
169
- impl < ' a > Clone for Members < ' a > {
170
- fn clone ( & self ) -> Self {
171
- Members {
172
- fields : self . fields . clone ( ) ,
173
- index : self . index ,
174
- }
175
- }
176
- }
177
-
178
141
Members {
179
142
fields : self . iter ( ) ,
180
143
index : 0 ,
@@ -234,6 +197,43 @@ ast_struct! {
234
197
}
235
198
}
236
199
200
+ pub struct Members < ' a > {
201
+ fields : punctuated:: Iter < ' a , Field > ,
202
+ index : u32 ,
203
+ }
204
+
205
+ impl < ' a > Iterator for Members < ' a > {
206
+ type Item = Member ;
207
+
208
+ fn next ( & mut self ) -> Option < Self :: Item > {
209
+ let field = self . fields . next ( ) ?;
210
+ let member = match & field. ident {
211
+ Some ( ident) => Member :: Named ( ident. clone ( ) ) ,
212
+ None => {
213
+ #[ cfg( all( feature = "parsing" , feature = "printing" ) ) ]
214
+ let span = crate :: spanned:: Spanned :: span ( & field. ty ) ;
215
+ #[ cfg( not( all( feature = "parsing" , feature = "printing" ) ) ) ]
216
+ let span = proc_macro2:: Span :: call_site ( ) ;
217
+ Member :: Unnamed ( Index {
218
+ index : self . index ,
219
+ span,
220
+ } )
221
+ }
222
+ } ;
223
+ self . index += 1 ;
224
+ Some ( member)
225
+ }
226
+ }
227
+
228
+ impl < ' a > Clone for Members < ' a > {
229
+ fn clone ( & self ) -> Self {
230
+ Members {
231
+ fields : self . fields . clone ( ) ,
232
+ index : self . index ,
233
+ }
234
+ }
235
+ }
236
+
237
237
#[ cfg( feature = "parsing" ) ]
238
238
pub ( crate ) mod parsing {
239
239
use crate :: attr:: Attribute ;
0 commit comments