1 // This file is @generated by syn-internal-codegen.
2 // It is not intended for manual editing.
3 
4 #[cfg(any(feature = "derive", feature = "full"))]
5 use crate::tt::TokenStreamHelper;
6 use crate::*;
7 #[cfg(any(feature = "derive", feature = "full"))]
8 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
9 impl Eq for Abi {}
10 #[cfg(any(feature = "derive", feature = "full"))]
11 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
12 impl PartialEq for Abi {
eqnull13     fn eq(&self, other: &Self) -> bool {
14         self.name == other.name
15     }
16 }
17 #[cfg(any(feature = "derive", feature = "full"))]
18 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
19 impl Eq for AngleBracketedGenericArguments {}
20 #[cfg(any(feature = "derive", feature = "full"))]
21 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
22 impl PartialEq for AngleBracketedGenericArguments {
eqnull23     fn eq(&self, other: &Self) -> bool {
24         self.colon2_token == other.colon2_token && self.args == other.args
25     }
26 }
27 #[cfg(feature = "full")]
28 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
29 impl Eq for Arm {}
30 #[cfg(feature = "full")]
31 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
32 impl PartialEq for Arm {
eqnull33     fn eq(&self, other: &Self) -> bool {
34         self.attrs == other.attrs && self.pat == other.pat && self.guard == other.guard
35             && self.body == other.body && self.comma == other.comma
36     }
37 }
38 #[cfg(any(feature = "derive", feature = "full"))]
39 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
40 impl Eq for AssocConst {}
41 #[cfg(any(feature = "derive", feature = "full"))]
42 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
43 impl PartialEq for AssocConst {
eqnull44     fn eq(&self, other: &Self) -> bool {
45         self.ident == other.ident && self.generics == other.generics
46             && self.value == other.value
47     }
48 }
49 #[cfg(any(feature = "derive", feature = "full"))]
50 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
51 impl Eq for AssocType {}
52 #[cfg(any(feature = "derive", feature = "full"))]
53 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
54 impl PartialEq for AssocType {
eqnull55     fn eq(&self, other: &Self) -> bool {
56         self.ident == other.ident && self.generics == other.generics
57             && self.ty == other.ty
58     }
59 }
60 #[cfg(any(feature = "derive", feature = "full"))]
61 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
62 impl Eq for AttrStyle {}
63 #[cfg(any(feature = "derive", feature = "full"))]
64 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
65 impl PartialEq for AttrStyle {
eqnull66     fn eq(&self, other: &Self) -> bool {
67         match (self, other) {
68             (AttrStyle::Outer, AttrStyle::Outer) => true,
69             (AttrStyle::Inner(_), AttrStyle::Inner(_)) => true,
70             _ => false,
71         }
72     }
73 }
74 #[cfg(any(feature = "derive", feature = "full"))]
75 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
76 impl Eq for Attribute {}
77 #[cfg(any(feature = "derive", feature = "full"))]
78 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
79 impl PartialEq for Attribute {
eqnull80     fn eq(&self, other: &Self) -> bool {
81         self.style == other.style && self.meta == other.meta
82     }
83 }
84 #[cfg(any(feature = "derive", feature = "full"))]
85 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
86 impl Eq for BareFnArg {}
87 #[cfg(any(feature = "derive", feature = "full"))]
88 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
89 impl PartialEq for BareFnArg {
eqnull90     fn eq(&self, other: &Self) -> bool {
91         self.attrs == other.attrs && self.name == other.name && self.ty == other.ty
92     }
93 }
94 #[cfg(any(feature = "derive", feature = "full"))]
95 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
96 impl Eq for BareVariadic {}
97 #[cfg(any(feature = "derive", feature = "full"))]
98 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
99 impl PartialEq for BareVariadic {
eqnull100     fn eq(&self, other: &Self) -> bool {
101         self.attrs == other.attrs && self.name == other.name && self.comma == other.comma
102     }
103 }
104 #[cfg(any(feature = "derive", feature = "full"))]
105 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
106 impl Eq for BinOp {}
107 #[cfg(any(feature = "derive", feature = "full"))]
108 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
109 impl PartialEq for BinOp {
eqnull110     fn eq(&self, other: &Self) -> bool {
111         match (self, other) {
112             (BinOp::Add(_), BinOp::Add(_)) => true,
113             (BinOp::Sub(_), BinOp::Sub(_)) => true,
114             (BinOp::Mul(_), BinOp::Mul(_)) => true,
115             (BinOp::Div(_), BinOp::Div(_)) => true,
116             (BinOp::Rem(_), BinOp::Rem(_)) => true,
117             (BinOp::And(_), BinOp::And(_)) => true,
118             (BinOp::Or(_), BinOp::Or(_)) => true,
119             (BinOp::BitXor(_), BinOp::BitXor(_)) => true,
120             (BinOp::BitAnd(_), BinOp::BitAnd(_)) => true,
121             (BinOp::BitOr(_), BinOp::BitOr(_)) => true,
122             (BinOp::Shl(_), BinOp::Shl(_)) => true,
123             (BinOp::Shr(_), BinOp::Shr(_)) => true,
124             (BinOp::Eq(_), BinOp::Eq(_)) => true,
125             (BinOp::Lt(_), BinOp::Lt(_)) => true,
126             (BinOp::Le(_), BinOp::Le(_)) => true,
127             (BinOp::Ne(_), BinOp::Ne(_)) => true,
128             (BinOp::Ge(_), BinOp::Ge(_)) => true,
129             (BinOp::Gt(_), BinOp::Gt(_)) => true,
130             (BinOp::AddAssign(_), BinOp::AddAssign(_)) => true,
131             (BinOp::SubAssign(_), BinOp::SubAssign(_)) => true,
132             (BinOp::MulAssign(_), BinOp::MulAssign(_)) => true,
133             (BinOp::DivAssign(_), BinOp::DivAssign(_)) => true,
134             (BinOp::RemAssign(_), BinOp::RemAssign(_)) => true,
135             (BinOp::BitXorAssign(_), BinOp::BitXorAssign(_)) => true,
136             (BinOp::BitAndAssign(_), BinOp::BitAndAssign(_)) => true,
137             (BinOp::BitOrAssign(_), BinOp::BitOrAssign(_)) => true,
138             (BinOp::ShlAssign(_), BinOp::ShlAssign(_)) => true,
139             (BinOp::ShrAssign(_), BinOp::ShrAssign(_)) => true,
140             _ => false,
141         }
142     }
143 }
144 #[cfg(feature = "full")]
145 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
146 impl Eq for Block {}
147 #[cfg(feature = "full")]
148 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
149 impl PartialEq for Block {
eqnull150     fn eq(&self, other: &Self) -> bool {
151         self.stmts == other.stmts
152     }
153 }
154 #[cfg(any(feature = "derive", feature = "full"))]
155 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
156 impl Eq for BoundLifetimes {}
157 #[cfg(any(feature = "derive", feature = "full"))]
158 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
159 impl PartialEq for BoundLifetimes {
eqnull160     fn eq(&self, other: &Self) -> bool {
161         self.lifetimes == other.lifetimes
162     }
163 }
164 #[cfg(any(feature = "derive", feature = "full"))]
165 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
166 impl Eq for ConstParam {}
167 #[cfg(any(feature = "derive", feature = "full"))]
168 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
169 impl PartialEq for ConstParam {
eqnull170     fn eq(&self, other: &Self) -> bool {
171         self.attrs == other.attrs && self.ident == other.ident && self.ty == other.ty
172             && self.eq_token == other.eq_token && self.default == other.default
173     }
174 }
175 #[cfg(any(feature = "derive", feature = "full"))]
176 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
177 impl Eq for Constraint {}
178 #[cfg(any(feature = "derive", feature = "full"))]
179 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
180 impl PartialEq for Constraint {
eqnull181     fn eq(&self, other: &Self) -> bool {
182         self.ident == other.ident && self.generics == other.generics
183             && self.bounds == other.bounds
184     }
185 }
186 #[cfg(feature = "derive")]
187 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
188 impl Eq for Data {}
189 #[cfg(feature = "derive")]
190 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
191 impl PartialEq for Data {
eqnull192     fn eq(&self, other: &Self) -> bool {
193         match (self, other) {
194             (Data::Struct(self0), Data::Struct(other0)) => self0 == other0,
195             (Data::Enum(self0), Data::Enum(other0)) => self0 == other0,
196             (Data::Union(self0), Data::Union(other0)) => self0 == other0,
197             _ => false,
198         }
199     }
200 }
201 #[cfg(feature = "derive")]
202 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
203 impl Eq for DataEnum {}
204 #[cfg(feature = "derive")]
205 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
206 impl PartialEq for DataEnum {
eqnull207     fn eq(&self, other: &Self) -> bool {
208         self.variants == other.variants
209     }
210 }
211 #[cfg(feature = "derive")]
212 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
213 impl Eq for DataStruct {}
214 #[cfg(feature = "derive")]
215 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
216 impl PartialEq for DataStruct {
eqnull217     fn eq(&self, other: &Self) -> bool {
218         self.fields == other.fields && self.semi_token == other.semi_token
219     }
220 }
221 #[cfg(feature = "derive")]
222 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
223 impl Eq for DataUnion {}
224 #[cfg(feature = "derive")]
225 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
226 impl PartialEq for DataUnion {
eqnull227     fn eq(&self, other: &Self) -> bool {
228         self.fields == other.fields
229     }
230 }
231 #[cfg(feature = "derive")]
232 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
233 impl Eq for DeriveInput {}
234 #[cfg(feature = "derive")]
235 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
236 impl PartialEq for DeriveInput {
eqnull237     fn eq(&self, other: &Self) -> bool {
238         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
239             && self.generics == other.generics && self.data == other.data
240     }
241 }
242 #[cfg(any(feature = "derive", feature = "full"))]
243 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
244 impl Eq for Expr {}
245 #[cfg(any(feature = "derive", feature = "full"))]
246 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
247 impl PartialEq for Expr {
eqnull248     fn eq(&self, other: &Self) -> bool {
249         match (self, other) {
250             #[cfg(feature = "full")]
251             (Expr::Array(self0), Expr::Array(other0)) => self0 == other0,
252             #[cfg(feature = "full")]
253             (Expr::Assign(self0), Expr::Assign(other0)) => self0 == other0,
254             #[cfg(feature = "full")]
255             (Expr::Async(self0), Expr::Async(other0)) => self0 == other0,
256             #[cfg(feature = "full")]
257             (Expr::Await(self0), Expr::Await(other0)) => self0 == other0,
258             (Expr::Binary(self0), Expr::Binary(other0)) => self0 == other0,
259             #[cfg(feature = "full")]
260             (Expr::Block(self0), Expr::Block(other0)) => self0 == other0,
261             #[cfg(feature = "full")]
262             (Expr::Break(self0), Expr::Break(other0)) => self0 == other0,
263             (Expr::Call(self0), Expr::Call(other0)) => self0 == other0,
264             (Expr::Cast(self0), Expr::Cast(other0)) => self0 == other0,
265             #[cfg(feature = "full")]
266             (Expr::Closure(self0), Expr::Closure(other0)) => self0 == other0,
267             #[cfg(feature = "full")]
268             (Expr::Const(self0), Expr::Const(other0)) => self0 == other0,
269             #[cfg(feature = "full")]
270             (Expr::Continue(self0), Expr::Continue(other0)) => self0 == other0,
271             (Expr::Field(self0), Expr::Field(other0)) => self0 == other0,
272             #[cfg(feature = "full")]
273             (Expr::ForLoop(self0), Expr::ForLoop(other0)) => self0 == other0,
274             (Expr::Group(self0), Expr::Group(other0)) => self0 == other0,
275             #[cfg(feature = "full")]
276             (Expr::If(self0), Expr::If(other0)) => self0 == other0,
277             (Expr::Index(self0), Expr::Index(other0)) => self0 == other0,
278             #[cfg(feature = "full")]
279             (Expr::Infer(self0), Expr::Infer(other0)) => self0 == other0,
280             #[cfg(feature = "full")]
281             (Expr::Let(self0), Expr::Let(other0)) => self0 == other0,
282             (Expr::Lit(self0), Expr::Lit(other0)) => self0 == other0,
283             #[cfg(feature = "full")]
284             (Expr::Loop(self0), Expr::Loop(other0)) => self0 == other0,
285             (Expr::Macro(self0), Expr::Macro(other0)) => self0 == other0,
286             #[cfg(feature = "full")]
287             (Expr::Match(self0), Expr::Match(other0)) => self0 == other0,
288             (Expr::MethodCall(self0), Expr::MethodCall(other0)) => self0 == other0,
289             (Expr::Paren(self0), Expr::Paren(other0)) => self0 == other0,
290             (Expr::Path(self0), Expr::Path(other0)) => self0 == other0,
291             #[cfg(feature = "full")]
292             (Expr::Range(self0), Expr::Range(other0)) => self0 == other0,
293             (Expr::Reference(self0), Expr::Reference(other0)) => self0 == other0,
294             #[cfg(feature = "full")]
295             (Expr::Repeat(self0), Expr::Repeat(other0)) => self0 == other0,
296             #[cfg(feature = "full")]
297             (Expr::Return(self0), Expr::Return(other0)) => self0 == other0,
298             (Expr::Struct(self0), Expr::Struct(other0)) => self0 == other0,
299             #[cfg(feature = "full")]
300             (Expr::Try(self0), Expr::Try(other0)) => self0 == other0,
301             #[cfg(feature = "full")]
302             (Expr::TryBlock(self0), Expr::TryBlock(other0)) => self0 == other0,
303             #[cfg(feature = "full")]
304             (Expr::Tuple(self0), Expr::Tuple(other0)) => self0 == other0,
305             (Expr::Unary(self0), Expr::Unary(other0)) => self0 == other0,
306             #[cfg(feature = "full")]
307             (Expr::Unsafe(self0), Expr::Unsafe(other0)) => self0 == other0,
308             (Expr::Verbatim(self0), Expr::Verbatim(other0)) => {
309                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
310             }
311             #[cfg(feature = "full")]
312             (Expr::While(self0), Expr::While(other0)) => self0 == other0,
313             #[cfg(feature = "full")]
314             (Expr::Yield(self0), Expr::Yield(other0)) => self0 == other0,
315             _ => false,
316         }
317     }
318 }
319 #[cfg(feature = "full")]
320 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
321 impl Eq for ExprArray {}
322 #[cfg(feature = "full")]
323 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
324 impl PartialEq for ExprArray {
eqnull325     fn eq(&self, other: &Self) -> bool {
326         self.attrs == other.attrs && self.elems == other.elems
327     }
328 }
329 #[cfg(feature = "full")]
330 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
331 impl Eq for ExprAssign {}
332 #[cfg(feature = "full")]
333 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
334 impl PartialEq for ExprAssign {
eqnull335     fn eq(&self, other: &Self) -> bool {
336         self.attrs == other.attrs && self.left == other.left && self.right == other.right
337     }
338 }
339 #[cfg(feature = "full")]
340 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
341 impl Eq for ExprAsync {}
342 #[cfg(feature = "full")]
343 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
344 impl PartialEq for ExprAsync {
eqnull345     fn eq(&self, other: &Self) -> bool {
346         self.attrs == other.attrs && self.capture == other.capture
347             && self.block == other.block
348     }
349 }
350 #[cfg(feature = "full")]
351 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
352 impl Eq for ExprAwait {}
353 #[cfg(feature = "full")]
354 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
355 impl PartialEq for ExprAwait {
eqnull356     fn eq(&self, other: &Self) -> bool {
357         self.attrs == other.attrs && self.base == other.base
358     }
359 }
360 #[cfg(any(feature = "derive", feature = "full"))]
361 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
362 impl Eq for ExprBinary {}
363 #[cfg(any(feature = "derive", feature = "full"))]
364 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
365 impl PartialEq for ExprBinary {
eqnull366     fn eq(&self, other: &Self) -> bool {
367         self.attrs == other.attrs && self.left == other.left && self.op == other.op
368             && self.right == other.right
369     }
370 }
371 #[cfg(feature = "full")]
372 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
373 impl Eq for ExprBlock {}
374 #[cfg(feature = "full")]
375 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
376 impl PartialEq for ExprBlock {
eqnull377     fn eq(&self, other: &Self) -> bool {
378         self.attrs == other.attrs && self.label == other.label
379             && self.block == other.block
380     }
381 }
382 #[cfg(feature = "full")]
383 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
384 impl Eq for ExprBreak {}
385 #[cfg(feature = "full")]
386 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
387 impl PartialEq for ExprBreak {
eqnull388     fn eq(&self, other: &Self) -> bool {
389         self.attrs == other.attrs && self.label == other.label && self.expr == other.expr
390     }
391 }
392 #[cfg(any(feature = "derive", feature = "full"))]
393 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
394 impl Eq for ExprCall {}
395 #[cfg(any(feature = "derive", feature = "full"))]
396 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
397 impl PartialEq for ExprCall {
eqnull398     fn eq(&self, other: &Self) -> bool {
399         self.attrs == other.attrs && self.func == other.func && self.args == other.args
400     }
401 }
402 #[cfg(any(feature = "derive", feature = "full"))]
403 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
404 impl Eq for ExprCast {}
405 #[cfg(any(feature = "derive", feature = "full"))]
406 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
407 impl PartialEq for ExprCast {
eqnull408     fn eq(&self, other: &Self) -> bool {
409         self.attrs == other.attrs && self.expr == other.expr && self.ty == other.ty
410     }
411 }
412 #[cfg(feature = "full")]
413 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
414 impl Eq for ExprClosure {}
415 #[cfg(feature = "full")]
416 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
417 impl PartialEq for ExprClosure {
eqnull418     fn eq(&self, other: &Self) -> bool {
419         self.attrs == other.attrs && self.lifetimes == other.lifetimes
420             && self.constness == other.constness && self.movability == other.movability
421             && self.asyncness == other.asyncness && self.capture == other.capture
422             && self.inputs == other.inputs && self.output == other.output
423             && self.body == other.body
424     }
425 }
426 #[cfg(feature = "full")]
427 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
428 impl Eq for ExprConst {}
429 #[cfg(feature = "full")]
430 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
431 impl PartialEq for ExprConst {
eqnull432     fn eq(&self, other: &Self) -> bool {
433         self.attrs == other.attrs && self.block == other.block
434     }
435 }
436 #[cfg(feature = "full")]
437 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
438 impl Eq for ExprContinue {}
439 #[cfg(feature = "full")]
440 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
441 impl PartialEq for ExprContinue {
eqnull442     fn eq(&self, other: &Self) -> bool {
443         self.attrs == other.attrs && self.label == other.label
444     }
445 }
446 #[cfg(any(feature = "derive", feature = "full"))]
447 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
448 impl Eq for ExprField {}
449 #[cfg(any(feature = "derive", feature = "full"))]
450 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
451 impl PartialEq for ExprField {
eqnull452     fn eq(&self, other: &Self) -> bool {
453         self.attrs == other.attrs && self.base == other.base
454             && self.member == other.member
455     }
456 }
457 #[cfg(feature = "full")]
458 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
459 impl Eq for ExprForLoop {}
460 #[cfg(feature = "full")]
461 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
462 impl PartialEq for ExprForLoop {
eqnull463     fn eq(&self, other: &Self) -> bool {
464         self.attrs == other.attrs && self.label == other.label && self.pat == other.pat
465             && self.expr == other.expr && self.body == other.body
466     }
467 }
468 #[cfg(any(feature = "derive", feature = "full"))]
469 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
470 impl Eq for ExprGroup {}
471 #[cfg(any(feature = "derive", feature = "full"))]
472 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
473 impl PartialEq for ExprGroup {
eqnull474     fn eq(&self, other: &Self) -> bool {
475         self.attrs == other.attrs && self.expr == other.expr
476     }
477 }
478 #[cfg(feature = "full")]
479 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
480 impl Eq for ExprIf {}
481 #[cfg(feature = "full")]
482 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
483 impl PartialEq for ExprIf {
eqnull484     fn eq(&self, other: &Self) -> bool {
485         self.attrs == other.attrs && self.cond == other.cond
486             && self.then_branch == other.then_branch
487             && self.else_branch == other.else_branch
488     }
489 }
490 #[cfg(any(feature = "derive", feature = "full"))]
491 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
492 impl Eq for ExprIndex {}
493 #[cfg(any(feature = "derive", feature = "full"))]
494 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
495 impl PartialEq for ExprIndex {
eqnull496     fn eq(&self, other: &Self) -> bool {
497         self.attrs == other.attrs && self.expr == other.expr && self.index == other.index
498     }
499 }
500 #[cfg(feature = "full")]
501 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
502 impl Eq for ExprInfer {}
503 #[cfg(feature = "full")]
504 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
505 impl PartialEq for ExprInfer {
eqnull506     fn eq(&self, other: &Self) -> bool {
507         self.attrs == other.attrs
508     }
509 }
510 #[cfg(feature = "full")]
511 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
512 impl Eq for ExprLet {}
513 #[cfg(feature = "full")]
514 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
515 impl PartialEq for ExprLet {
eqnull516     fn eq(&self, other: &Self) -> bool {
517         self.attrs == other.attrs && self.pat == other.pat && self.expr == other.expr
518     }
519 }
520 #[cfg(any(feature = "derive", feature = "full"))]
521 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
522 impl Eq for ExprLit {}
523 #[cfg(any(feature = "derive", feature = "full"))]
524 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
525 impl PartialEq for ExprLit {
eqnull526     fn eq(&self, other: &Self) -> bool {
527         self.attrs == other.attrs && self.lit == other.lit
528     }
529 }
530 #[cfg(feature = "full")]
531 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
532 impl Eq for ExprLoop {}
533 #[cfg(feature = "full")]
534 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
535 impl PartialEq for ExprLoop {
eqnull536     fn eq(&self, other: &Self) -> bool {
537         self.attrs == other.attrs && self.label == other.label && self.body == other.body
538     }
539 }
540 #[cfg(any(feature = "derive", feature = "full"))]
541 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
542 impl Eq for ExprMacro {}
543 #[cfg(any(feature = "derive", feature = "full"))]
544 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
545 impl PartialEq for ExprMacro {
eqnull546     fn eq(&self, other: &Self) -> bool {
547         self.attrs == other.attrs && self.mac == other.mac
548     }
549 }
550 #[cfg(feature = "full")]
551 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
552 impl Eq for ExprMatch {}
553 #[cfg(feature = "full")]
554 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
555 impl PartialEq for ExprMatch {
eqnull556     fn eq(&self, other: &Self) -> bool {
557         self.attrs == other.attrs && self.expr == other.expr && self.arms == other.arms
558     }
559 }
560 #[cfg(any(feature = "derive", feature = "full"))]
561 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
562 impl Eq for ExprMethodCall {}
563 #[cfg(any(feature = "derive", feature = "full"))]
564 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
565 impl PartialEq for ExprMethodCall {
eqnull566     fn eq(&self, other: &Self) -> bool {
567         self.attrs == other.attrs && self.receiver == other.receiver
568             && self.method == other.method && self.turbofish == other.turbofish
569             && self.args == other.args
570     }
571 }
572 #[cfg(any(feature = "derive", feature = "full"))]
573 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
574 impl Eq for ExprParen {}
575 #[cfg(any(feature = "derive", feature = "full"))]
576 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
577 impl PartialEq for ExprParen {
eqnull578     fn eq(&self, other: &Self) -> bool {
579         self.attrs == other.attrs && self.expr == other.expr
580     }
581 }
582 #[cfg(any(feature = "derive", feature = "full"))]
583 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
584 impl Eq for ExprPath {}
585 #[cfg(any(feature = "derive", feature = "full"))]
586 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
587 impl PartialEq for ExprPath {
eqnull588     fn eq(&self, other: &Self) -> bool {
589         self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
590     }
591 }
592 #[cfg(feature = "full")]
593 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
594 impl Eq for ExprRange {}
595 #[cfg(feature = "full")]
596 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
597 impl PartialEq for ExprRange {
eqnull598     fn eq(&self, other: &Self) -> bool {
599         self.attrs == other.attrs && self.start == other.start
600             && self.limits == other.limits && self.end == other.end
601     }
602 }
603 #[cfg(any(feature = "derive", feature = "full"))]
604 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
605 impl Eq for ExprReference {}
606 #[cfg(any(feature = "derive", feature = "full"))]
607 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
608 impl PartialEq for ExprReference {
eqnull609     fn eq(&self, other: &Self) -> bool {
610         self.attrs == other.attrs && self.mutability == other.mutability
611             && self.expr == other.expr
612     }
613 }
614 #[cfg(feature = "full")]
615 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
616 impl Eq for ExprRepeat {}
617 #[cfg(feature = "full")]
618 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
619 impl PartialEq for ExprRepeat {
eqnull620     fn eq(&self, other: &Self) -> bool {
621         self.attrs == other.attrs && self.expr == other.expr && self.len == other.len
622     }
623 }
624 #[cfg(feature = "full")]
625 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
626 impl Eq for ExprReturn {}
627 #[cfg(feature = "full")]
628 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
629 impl PartialEq for ExprReturn {
eqnull630     fn eq(&self, other: &Self) -> bool {
631         self.attrs == other.attrs && self.expr == other.expr
632     }
633 }
634 #[cfg(any(feature = "derive", feature = "full"))]
635 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
636 impl Eq for ExprStruct {}
637 #[cfg(any(feature = "derive", feature = "full"))]
638 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
639 impl PartialEq for ExprStruct {
eqnull640     fn eq(&self, other: &Self) -> bool {
641         self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
642             && self.fields == other.fields && self.dot2_token == other.dot2_token
643             && self.rest == other.rest
644     }
645 }
646 #[cfg(feature = "full")]
647 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
648 impl Eq for ExprTry {}
649 #[cfg(feature = "full")]
650 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
651 impl PartialEq for ExprTry {
eqnull652     fn eq(&self, other: &Self) -> bool {
653         self.attrs == other.attrs && self.expr == other.expr
654     }
655 }
656 #[cfg(feature = "full")]
657 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
658 impl Eq for ExprTryBlock {}
659 #[cfg(feature = "full")]
660 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
661 impl PartialEq for ExprTryBlock {
eqnull662     fn eq(&self, other: &Self) -> bool {
663         self.attrs == other.attrs && self.block == other.block
664     }
665 }
666 #[cfg(feature = "full")]
667 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
668 impl Eq for ExprTuple {}
669 #[cfg(feature = "full")]
670 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
671 impl PartialEq for ExprTuple {
eqnull672     fn eq(&self, other: &Self) -> bool {
673         self.attrs == other.attrs && self.elems == other.elems
674     }
675 }
676 #[cfg(any(feature = "derive", feature = "full"))]
677 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
678 impl Eq for ExprUnary {}
679 #[cfg(any(feature = "derive", feature = "full"))]
680 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
681 impl PartialEq for ExprUnary {
eqnull682     fn eq(&self, other: &Self) -> bool {
683         self.attrs == other.attrs && self.op == other.op && self.expr == other.expr
684     }
685 }
686 #[cfg(feature = "full")]
687 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
688 impl Eq for ExprUnsafe {}
689 #[cfg(feature = "full")]
690 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
691 impl PartialEq for ExprUnsafe {
eqnull692     fn eq(&self, other: &Self) -> bool {
693         self.attrs == other.attrs && self.block == other.block
694     }
695 }
696 #[cfg(feature = "full")]
697 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
698 impl Eq for ExprWhile {}
699 #[cfg(feature = "full")]
700 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
701 impl PartialEq for ExprWhile {
eqnull702     fn eq(&self, other: &Self) -> bool {
703         self.attrs == other.attrs && self.label == other.label && self.cond == other.cond
704             && self.body == other.body
705     }
706 }
707 #[cfg(feature = "full")]
708 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
709 impl Eq for ExprYield {}
710 #[cfg(feature = "full")]
711 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
712 impl PartialEq for ExprYield {
eqnull713     fn eq(&self, other: &Self) -> bool {
714         self.attrs == other.attrs && self.expr == other.expr
715     }
716 }
717 #[cfg(any(feature = "derive", feature = "full"))]
718 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
719 impl Eq for Field {}
720 #[cfg(any(feature = "derive", feature = "full"))]
721 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
722 impl PartialEq for Field {
eqnull723     fn eq(&self, other: &Self) -> bool {
724         self.attrs == other.attrs && self.vis == other.vis
725             && self.mutability == other.mutability && self.ident == other.ident
726             && self.colon_token == other.colon_token && self.ty == other.ty
727     }
728 }
729 #[cfg(any(feature = "derive", feature = "full"))]
730 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
731 impl Eq for FieldMutability {}
732 #[cfg(any(feature = "derive", feature = "full"))]
733 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
734 impl PartialEq for FieldMutability {
eqnull735     fn eq(&self, other: &Self) -> bool {
736         match (self, other) {
737             (FieldMutability::None, FieldMutability::None) => true,
738         }
739     }
740 }
741 #[cfg(feature = "full")]
742 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
743 impl Eq for FieldPat {}
744 #[cfg(feature = "full")]
745 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
746 impl PartialEq for FieldPat {
eqnull747     fn eq(&self, other: &Self) -> bool {
748         self.attrs == other.attrs && self.member == other.member
749             && self.colon_token == other.colon_token && self.pat == other.pat
750     }
751 }
752 #[cfg(any(feature = "derive", feature = "full"))]
753 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
754 impl Eq for FieldValue {}
755 #[cfg(any(feature = "derive", feature = "full"))]
756 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
757 impl PartialEq for FieldValue {
eqnull758     fn eq(&self, other: &Self) -> bool {
759         self.attrs == other.attrs && self.member == other.member
760             && self.colon_token == other.colon_token && self.expr == other.expr
761     }
762 }
763 #[cfg(any(feature = "derive", feature = "full"))]
764 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
765 impl Eq for Fields {}
766 #[cfg(any(feature = "derive", feature = "full"))]
767 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
768 impl PartialEq for Fields {
eqnull769     fn eq(&self, other: &Self) -> bool {
770         match (self, other) {
771             (Fields::Named(self0), Fields::Named(other0)) => self0 == other0,
772             (Fields::Unnamed(self0), Fields::Unnamed(other0)) => self0 == other0,
773             (Fields::Unit, Fields::Unit) => true,
774             _ => false,
775         }
776     }
777 }
778 #[cfg(any(feature = "derive", feature = "full"))]
779 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
780 impl Eq for FieldsNamed {}
781 #[cfg(any(feature = "derive", feature = "full"))]
782 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
783 impl PartialEq for FieldsNamed {
eqnull784     fn eq(&self, other: &Self) -> bool {
785         self.named == other.named
786     }
787 }
788 #[cfg(any(feature = "derive", feature = "full"))]
789 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
790 impl Eq for FieldsUnnamed {}
791 #[cfg(any(feature = "derive", feature = "full"))]
792 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
793 impl PartialEq for FieldsUnnamed {
eqnull794     fn eq(&self, other: &Self) -> bool {
795         self.unnamed == other.unnamed
796     }
797 }
798 #[cfg(feature = "full")]
799 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
800 impl Eq for File {}
801 #[cfg(feature = "full")]
802 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
803 impl PartialEq for File {
eqnull804     fn eq(&self, other: &Self) -> bool {
805         self.shebang == other.shebang && self.attrs == other.attrs
806             && self.items == other.items
807     }
808 }
809 #[cfg(feature = "full")]
810 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
811 impl Eq for FnArg {}
812 #[cfg(feature = "full")]
813 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
814 impl PartialEq for FnArg {
eqnull815     fn eq(&self, other: &Self) -> bool {
816         match (self, other) {
817             (FnArg::Receiver(self0), FnArg::Receiver(other0)) => self0 == other0,
818             (FnArg::Typed(self0), FnArg::Typed(other0)) => self0 == other0,
819             _ => false,
820         }
821     }
822 }
823 #[cfg(feature = "full")]
824 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
825 impl Eq for ForeignItem {}
826 #[cfg(feature = "full")]
827 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
828 impl PartialEq for ForeignItem {
eqnull829     fn eq(&self, other: &Self) -> bool {
830         match (self, other) {
831             (ForeignItem::Fn(self0), ForeignItem::Fn(other0)) => self0 == other0,
832             (ForeignItem::Static(self0), ForeignItem::Static(other0)) => self0 == other0,
833             (ForeignItem::Type(self0), ForeignItem::Type(other0)) => self0 == other0,
834             (ForeignItem::Macro(self0), ForeignItem::Macro(other0)) => self0 == other0,
835             (ForeignItem::Verbatim(self0), ForeignItem::Verbatim(other0)) => {
836                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
837             }
838             _ => false,
839         }
840     }
841 }
842 #[cfg(feature = "full")]
843 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
844 impl Eq for ForeignItemFn {}
845 #[cfg(feature = "full")]
846 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
847 impl PartialEq for ForeignItemFn {
eqnull848     fn eq(&self, other: &Self) -> bool {
849         self.attrs == other.attrs && self.vis == other.vis && self.sig == other.sig
850     }
851 }
852 #[cfg(feature = "full")]
853 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
854 impl Eq for ForeignItemMacro {}
855 #[cfg(feature = "full")]
856 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
857 impl PartialEq for ForeignItemMacro {
eqnull858     fn eq(&self, other: &Self) -> bool {
859         self.attrs == other.attrs && self.mac == other.mac
860             && self.semi_token == other.semi_token
861     }
862 }
863 #[cfg(feature = "full")]
864 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
865 impl Eq for ForeignItemStatic {}
866 #[cfg(feature = "full")]
867 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
868 impl PartialEq for ForeignItemStatic {
eqnull869     fn eq(&self, other: &Self) -> bool {
870         self.attrs == other.attrs && self.vis == other.vis
871             && self.mutability == other.mutability && self.ident == other.ident
872             && self.ty == other.ty
873     }
874 }
875 #[cfg(feature = "full")]
876 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
877 impl Eq for ForeignItemType {}
878 #[cfg(feature = "full")]
879 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
880 impl PartialEq for ForeignItemType {
eqnull881     fn eq(&self, other: &Self) -> bool {
882         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
883             && self.generics == other.generics
884     }
885 }
886 #[cfg(any(feature = "derive", feature = "full"))]
887 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
888 impl Eq for GenericArgument {}
889 #[cfg(any(feature = "derive", feature = "full"))]
890 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
891 impl PartialEq for GenericArgument {
eqnull892     fn eq(&self, other: &Self) -> bool {
893         match (self, other) {
894             (GenericArgument::Lifetime(self0), GenericArgument::Lifetime(other0)) => {
895                 self0 == other0
896             }
897             (GenericArgument::Type(self0), GenericArgument::Type(other0)) => {
898                 self0 == other0
899             }
900             (GenericArgument::Const(self0), GenericArgument::Const(other0)) => {
901                 self0 == other0
902             }
903             (GenericArgument::AssocType(self0), GenericArgument::AssocType(other0)) => {
904                 self0 == other0
905             }
906             (GenericArgument::AssocConst(self0), GenericArgument::AssocConst(other0)) => {
907                 self0 == other0
908             }
909             (GenericArgument::Constraint(self0), GenericArgument::Constraint(other0)) => {
910                 self0 == other0
911             }
912             _ => false,
913         }
914     }
915 }
916 #[cfg(any(feature = "derive", feature = "full"))]
917 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
918 impl Eq for GenericParam {}
919 #[cfg(any(feature = "derive", feature = "full"))]
920 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
921 impl PartialEq for GenericParam {
eqnull922     fn eq(&self, other: &Self) -> bool {
923         match (self, other) {
924             (GenericParam::Lifetime(self0), GenericParam::Lifetime(other0)) => {
925                 self0 == other0
926             }
927             (GenericParam::Type(self0), GenericParam::Type(other0)) => self0 == other0,
928             (GenericParam::Const(self0), GenericParam::Const(other0)) => self0 == other0,
929             _ => false,
930         }
931     }
932 }
933 #[cfg(any(feature = "derive", feature = "full"))]
934 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
935 impl Eq for Generics {}
936 #[cfg(any(feature = "derive", feature = "full"))]
937 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
938 impl PartialEq for Generics {
eqnull939     fn eq(&self, other: &Self) -> bool {
940         self.lt_token == other.lt_token && self.params == other.params
941             && self.gt_token == other.gt_token && self.where_clause == other.where_clause
942     }
943 }
944 #[cfg(feature = "full")]
945 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
946 impl Eq for ImplItem {}
947 #[cfg(feature = "full")]
948 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
949 impl PartialEq for ImplItem {
eqnull950     fn eq(&self, other: &Self) -> bool {
951         match (self, other) {
952             (ImplItem::Const(self0), ImplItem::Const(other0)) => self0 == other0,
953             (ImplItem::Fn(self0), ImplItem::Fn(other0)) => self0 == other0,
954             (ImplItem::Type(self0), ImplItem::Type(other0)) => self0 == other0,
955             (ImplItem::Macro(self0), ImplItem::Macro(other0)) => self0 == other0,
956             (ImplItem::Verbatim(self0), ImplItem::Verbatim(other0)) => {
957                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
958             }
959             _ => false,
960         }
961     }
962 }
963 #[cfg(feature = "full")]
964 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
965 impl Eq for ImplItemConst {}
966 #[cfg(feature = "full")]
967 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
968 impl PartialEq for ImplItemConst {
eqnull969     fn eq(&self, other: &Self) -> bool {
970         self.attrs == other.attrs && self.vis == other.vis
971             && self.defaultness == other.defaultness && self.ident == other.ident
972             && self.generics == other.generics && self.ty == other.ty
973             && self.expr == other.expr
974     }
975 }
976 #[cfg(feature = "full")]
977 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
978 impl Eq for ImplItemFn {}
979 #[cfg(feature = "full")]
980 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
981 impl PartialEq for ImplItemFn {
eqnull982     fn eq(&self, other: &Self) -> bool {
983         self.attrs == other.attrs && self.vis == other.vis
984             && self.defaultness == other.defaultness && self.sig == other.sig
985             && self.block == other.block
986     }
987 }
988 #[cfg(feature = "full")]
989 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
990 impl Eq for ImplItemMacro {}
991 #[cfg(feature = "full")]
992 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
993 impl PartialEq for ImplItemMacro {
eqnull994     fn eq(&self, other: &Self) -> bool {
995         self.attrs == other.attrs && self.mac == other.mac
996             && self.semi_token == other.semi_token
997     }
998 }
999 #[cfg(feature = "full")]
1000 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1001 impl Eq for ImplItemType {}
1002 #[cfg(feature = "full")]
1003 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1004 impl PartialEq for ImplItemType {
eqnull1005     fn eq(&self, other: &Self) -> bool {
1006         self.attrs == other.attrs && self.vis == other.vis
1007             && self.defaultness == other.defaultness && self.ident == other.ident
1008             && self.generics == other.generics && self.ty == other.ty
1009     }
1010 }
1011 #[cfg(feature = "full")]
1012 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1013 impl Eq for ImplRestriction {}
1014 #[cfg(feature = "full")]
1015 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1016 impl PartialEq for ImplRestriction {
eqnull1017     fn eq(&self, _other: &Self) -> bool {
1018         match *self {}
1019     }
1020 }
1021 #[cfg(feature = "full")]
1022 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1023 impl Eq for Item {}
1024 #[cfg(feature = "full")]
1025 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1026 impl PartialEq for Item {
eqnull1027     fn eq(&self, other: &Self) -> bool {
1028         match (self, other) {
1029             (Item::Const(self0), Item::Const(other0)) => self0 == other0,
1030             (Item::Enum(self0), Item::Enum(other0)) => self0 == other0,
1031             (Item::ExternCrate(self0), Item::ExternCrate(other0)) => self0 == other0,
1032             (Item::Fn(self0), Item::Fn(other0)) => self0 == other0,
1033             (Item::ForeignMod(self0), Item::ForeignMod(other0)) => self0 == other0,
1034             (Item::Impl(self0), Item::Impl(other0)) => self0 == other0,
1035             (Item::Macro(self0), Item::Macro(other0)) => self0 == other0,
1036             (Item::Mod(self0), Item::Mod(other0)) => self0 == other0,
1037             (Item::Static(self0), Item::Static(other0)) => self0 == other0,
1038             (Item::Struct(self0), Item::Struct(other0)) => self0 == other0,
1039             (Item::Trait(self0), Item::Trait(other0)) => self0 == other0,
1040             (Item::TraitAlias(self0), Item::TraitAlias(other0)) => self0 == other0,
1041             (Item::Type(self0), Item::Type(other0)) => self0 == other0,
1042             (Item::Union(self0), Item::Union(other0)) => self0 == other0,
1043             (Item::Use(self0), Item::Use(other0)) => self0 == other0,
1044             (Item::Verbatim(self0), Item::Verbatim(other0)) => {
1045                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
1046             }
1047             _ => false,
1048         }
1049     }
1050 }
1051 #[cfg(feature = "full")]
1052 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1053 impl Eq for ItemConst {}
1054 #[cfg(feature = "full")]
1055 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1056 impl PartialEq for ItemConst {
eqnull1057     fn eq(&self, other: &Self) -> bool {
1058         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1059             && self.generics == other.generics && self.ty == other.ty
1060             && self.expr == other.expr
1061     }
1062 }
1063 #[cfg(feature = "full")]
1064 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1065 impl Eq for ItemEnum {}
1066 #[cfg(feature = "full")]
1067 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1068 impl PartialEq for ItemEnum {
eqnull1069     fn eq(&self, other: &Self) -> bool {
1070         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1071             && self.generics == other.generics && self.variants == other.variants
1072     }
1073 }
1074 #[cfg(feature = "full")]
1075 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1076 impl Eq for ItemExternCrate {}
1077 #[cfg(feature = "full")]
1078 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1079 impl PartialEq for ItemExternCrate {
eqnull1080     fn eq(&self, other: &Self) -> bool {
1081         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1082             && self.rename == other.rename
1083     }
1084 }
1085 #[cfg(feature = "full")]
1086 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1087 impl Eq for ItemFn {}
1088 #[cfg(feature = "full")]
1089 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1090 impl PartialEq for ItemFn {
eqnull1091     fn eq(&self, other: &Self) -> bool {
1092         self.attrs == other.attrs && self.vis == other.vis && self.sig == other.sig
1093             && self.block == other.block
1094     }
1095 }
1096 #[cfg(feature = "full")]
1097 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1098 impl Eq for ItemForeignMod {}
1099 #[cfg(feature = "full")]
1100 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1101 impl PartialEq for ItemForeignMod {
eqnull1102     fn eq(&self, other: &Self) -> bool {
1103         self.attrs == other.attrs && self.unsafety == other.unsafety
1104             && self.abi == other.abi && self.items == other.items
1105     }
1106 }
1107 #[cfg(feature = "full")]
1108 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1109 impl Eq for ItemImpl {}
1110 #[cfg(feature = "full")]
1111 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1112 impl PartialEq for ItemImpl {
eqnull1113     fn eq(&self, other: &Self) -> bool {
1114         self.attrs == other.attrs && self.defaultness == other.defaultness
1115             && self.unsafety == other.unsafety && self.generics == other.generics
1116             && self.trait_ == other.trait_ && self.self_ty == other.self_ty
1117             && self.items == other.items
1118     }
1119 }
1120 #[cfg(feature = "full")]
1121 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1122 impl Eq for ItemMacro {}
1123 #[cfg(feature = "full")]
1124 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1125 impl PartialEq for ItemMacro {
eqnull1126     fn eq(&self, other: &Self) -> bool {
1127         self.attrs == other.attrs && self.ident == other.ident && self.mac == other.mac
1128             && self.semi_token == other.semi_token
1129     }
1130 }
1131 #[cfg(feature = "full")]
1132 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1133 impl Eq for ItemMod {}
1134 #[cfg(feature = "full")]
1135 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1136 impl PartialEq for ItemMod {
eqnull1137     fn eq(&self, other: &Self) -> bool {
1138         self.attrs == other.attrs && self.vis == other.vis
1139             && self.unsafety == other.unsafety && self.ident == other.ident
1140             && self.content == other.content && self.semi == other.semi
1141     }
1142 }
1143 #[cfg(feature = "full")]
1144 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1145 impl Eq for ItemStatic {}
1146 #[cfg(feature = "full")]
1147 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1148 impl PartialEq for ItemStatic {
eqnull1149     fn eq(&self, other: &Self) -> bool {
1150         self.attrs == other.attrs && self.vis == other.vis
1151             && self.mutability == other.mutability && self.ident == other.ident
1152             && self.ty == other.ty && self.expr == other.expr
1153     }
1154 }
1155 #[cfg(feature = "full")]
1156 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1157 impl Eq for ItemStruct {}
1158 #[cfg(feature = "full")]
1159 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1160 impl PartialEq for ItemStruct {
eqnull1161     fn eq(&self, other: &Self) -> bool {
1162         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1163             && self.generics == other.generics && self.fields == other.fields
1164             && self.semi_token == other.semi_token
1165     }
1166 }
1167 #[cfg(feature = "full")]
1168 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1169 impl Eq for ItemTrait {}
1170 #[cfg(feature = "full")]
1171 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1172 impl PartialEq for ItemTrait {
eqnull1173     fn eq(&self, other: &Self) -> bool {
1174         self.attrs == other.attrs && self.vis == other.vis
1175             && self.unsafety == other.unsafety && self.auto_token == other.auto_token
1176             && self.restriction == other.restriction && self.ident == other.ident
1177             && self.generics == other.generics && self.colon_token == other.colon_token
1178             && self.supertraits == other.supertraits && self.items == other.items
1179     }
1180 }
1181 #[cfg(feature = "full")]
1182 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1183 impl Eq for ItemTraitAlias {}
1184 #[cfg(feature = "full")]
1185 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1186 impl PartialEq for ItemTraitAlias {
eqnull1187     fn eq(&self, other: &Self) -> bool {
1188         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1189             && self.generics == other.generics && self.bounds == other.bounds
1190     }
1191 }
1192 #[cfg(feature = "full")]
1193 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1194 impl Eq for ItemType {}
1195 #[cfg(feature = "full")]
1196 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1197 impl PartialEq for ItemType {
eqnull1198     fn eq(&self, other: &Self) -> bool {
1199         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1200             && self.generics == other.generics && self.ty == other.ty
1201     }
1202 }
1203 #[cfg(feature = "full")]
1204 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1205 impl Eq for ItemUnion {}
1206 #[cfg(feature = "full")]
1207 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1208 impl PartialEq for ItemUnion {
eqnull1209     fn eq(&self, other: &Self) -> bool {
1210         self.attrs == other.attrs && self.vis == other.vis && self.ident == other.ident
1211             && self.generics == other.generics && self.fields == other.fields
1212     }
1213 }
1214 #[cfg(feature = "full")]
1215 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1216 impl Eq for ItemUse {}
1217 #[cfg(feature = "full")]
1218 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1219 impl PartialEq for ItemUse {
eqnull1220     fn eq(&self, other: &Self) -> bool {
1221         self.attrs == other.attrs && self.vis == other.vis
1222             && self.leading_colon == other.leading_colon && self.tree == other.tree
1223     }
1224 }
1225 #[cfg(feature = "full")]
1226 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1227 impl Eq for Label {}
1228 #[cfg(feature = "full")]
1229 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1230 impl PartialEq for Label {
eqnull1231     fn eq(&self, other: &Self) -> bool {
1232         self.name == other.name
1233     }
1234 }
1235 #[cfg(any(feature = "derive", feature = "full"))]
1236 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1237 impl Eq for LifetimeParam {}
1238 #[cfg(any(feature = "derive", feature = "full"))]
1239 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1240 impl PartialEq for LifetimeParam {
eqnull1241     fn eq(&self, other: &Self) -> bool {
1242         self.attrs == other.attrs && self.lifetime == other.lifetime
1243             && self.colon_token == other.colon_token && self.bounds == other.bounds
1244     }
1245 }
1246 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1247 impl Eq for Lit {}
1248 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1249 impl PartialEq for Lit {
eqnull1250     fn eq(&self, other: &Self) -> bool {
1251         match (self, other) {
1252             (Lit::Str(self0), Lit::Str(other0)) => self0 == other0,
1253             (Lit::ByteStr(self0), Lit::ByteStr(other0)) => self0 == other0,
1254             (Lit::Byte(self0), Lit::Byte(other0)) => self0 == other0,
1255             (Lit::Char(self0), Lit::Char(other0)) => self0 == other0,
1256             (Lit::Int(self0), Lit::Int(other0)) => self0 == other0,
1257             (Lit::Float(self0), Lit::Float(other0)) => self0 == other0,
1258             (Lit::Bool(self0), Lit::Bool(other0)) => self0 == other0,
1259             (Lit::Verbatim(self0), Lit::Verbatim(other0)) => {
1260                 self0.to_string() == other0.to_string()
1261             }
1262             _ => false,
1263         }
1264     }
1265 }
1266 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1267 impl Eq for LitBool {}
1268 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1269 impl PartialEq for LitBool {
eqnull1270     fn eq(&self, other: &Self) -> bool {
1271         self.value == other.value
1272     }
1273 }
1274 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1275 impl Eq for LitByte {}
1276 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1277 impl Eq for LitByteStr {}
1278 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1279 impl Eq for LitChar {}
1280 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1281 impl Eq for LitFloat {}
1282 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1283 impl Eq for LitInt {}
1284 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1285 impl Eq for LitStr {}
1286 #[cfg(feature = "full")]
1287 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1288 impl Eq for Local {}
1289 #[cfg(feature = "full")]
1290 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1291 impl PartialEq for Local {
eqnull1292     fn eq(&self, other: &Self) -> bool {
1293         self.attrs == other.attrs && self.pat == other.pat && self.init == other.init
1294     }
1295 }
1296 #[cfg(feature = "full")]
1297 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1298 impl Eq for LocalInit {}
1299 #[cfg(feature = "full")]
1300 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1301 impl PartialEq for LocalInit {
eqnull1302     fn eq(&self, other: &Self) -> bool {
1303         self.expr == other.expr && self.diverge == other.diverge
1304     }
1305 }
1306 #[cfg(any(feature = "derive", feature = "full"))]
1307 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1308 impl Eq for Macro {}
1309 #[cfg(any(feature = "derive", feature = "full"))]
1310 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1311 impl PartialEq for Macro {
eqnull1312     fn eq(&self, other: &Self) -> bool {
1313         self.path == other.path && self.delimiter == other.delimiter
1314             && TokenStreamHelper(&self.tokens) == TokenStreamHelper(&other.tokens)
1315     }
1316 }
1317 #[cfg(any(feature = "derive", feature = "full"))]
1318 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1319 impl Eq for MacroDelimiter {}
1320 #[cfg(any(feature = "derive", feature = "full"))]
1321 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1322 impl PartialEq for MacroDelimiter {
eqnull1323     fn eq(&self, other: &Self) -> bool {
1324         match (self, other) {
1325             (MacroDelimiter::Paren(_), MacroDelimiter::Paren(_)) => true,
1326             (MacroDelimiter::Brace(_), MacroDelimiter::Brace(_)) => true,
1327             (MacroDelimiter::Bracket(_), MacroDelimiter::Bracket(_)) => true,
1328             _ => false,
1329         }
1330     }
1331 }
1332 #[cfg(any(feature = "derive", feature = "full"))]
1333 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1334 impl Eq for Meta {}
1335 #[cfg(any(feature = "derive", feature = "full"))]
1336 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1337 impl PartialEq for Meta {
eqnull1338     fn eq(&self, other: &Self) -> bool {
1339         match (self, other) {
1340             (Meta::Path(self0), Meta::Path(other0)) => self0 == other0,
1341             (Meta::List(self0), Meta::List(other0)) => self0 == other0,
1342             (Meta::NameValue(self0), Meta::NameValue(other0)) => self0 == other0,
1343             _ => false,
1344         }
1345     }
1346 }
1347 #[cfg(any(feature = "derive", feature = "full"))]
1348 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1349 impl Eq for MetaList {}
1350 #[cfg(any(feature = "derive", feature = "full"))]
1351 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1352 impl PartialEq for MetaList {
eqnull1353     fn eq(&self, other: &Self) -> bool {
1354         self.path == other.path && self.delimiter == other.delimiter
1355             && TokenStreamHelper(&self.tokens) == TokenStreamHelper(&other.tokens)
1356     }
1357 }
1358 #[cfg(any(feature = "derive", feature = "full"))]
1359 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1360 impl Eq for MetaNameValue {}
1361 #[cfg(any(feature = "derive", feature = "full"))]
1362 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1363 impl PartialEq for MetaNameValue {
eqnull1364     fn eq(&self, other: &Self) -> bool {
1365         self.path == other.path && self.value == other.value
1366     }
1367 }
1368 #[cfg(any(feature = "derive", feature = "full"))]
1369 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1370 impl Eq for ParenthesizedGenericArguments {}
1371 #[cfg(any(feature = "derive", feature = "full"))]
1372 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1373 impl PartialEq for ParenthesizedGenericArguments {
eqnull1374     fn eq(&self, other: &Self) -> bool {
1375         self.inputs == other.inputs && self.output == other.output
1376     }
1377 }
1378 #[cfg(feature = "full")]
1379 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1380 impl Eq for Pat {}
1381 #[cfg(feature = "full")]
1382 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1383 impl PartialEq for Pat {
eqnull1384     fn eq(&self, other: &Self) -> bool {
1385         match (self, other) {
1386             (Pat::Const(self0), Pat::Const(other0)) => self0 == other0,
1387             (Pat::Ident(self0), Pat::Ident(other0)) => self0 == other0,
1388             (Pat::Lit(self0), Pat::Lit(other0)) => self0 == other0,
1389             (Pat::Macro(self0), Pat::Macro(other0)) => self0 == other0,
1390             (Pat::Or(self0), Pat::Or(other0)) => self0 == other0,
1391             (Pat::Paren(self0), Pat::Paren(other0)) => self0 == other0,
1392             (Pat::Path(self0), Pat::Path(other0)) => self0 == other0,
1393             (Pat::Range(self0), Pat::Range(other0)) => self0 == other0,
1394             (Pat::Reference(self0), Pat::Reference(other0)) => self0 == other0,
1395             (Pat::Rest(self0), Pat::Rest(other0)) => self0 == other0,
1396             (Pat::Slice(self0), Pat::Slice(other0)) => self0 == other0,
1397             (Pat::Struct(self0), Pat::Struct(other0)) => self0 == other0,
1398             (Pat::Tuple(self0), Pat::Tuple(other0)) => self0 == other0,
1399             (Pat::TupleStruct(self0), Pat::TupleStruct(other0)) => self0 == other0,
1400             (Pat::Type(self0), Pat::Type(other0)) => self0 == other0,
1401             (Pat::Verbatim(self0), Pat::Verbatim(other0)) => {
1402                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
1403             }
1404             (Pat::Wild(self0), Pat::Wild(other0)) => self0 == other0,
1405             _ => false,
1406         }
1407     }
1408 }
1409 #[cfg(feature = "full")]
1410 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1411 impl Eq for PatIdent {}
1412 #[cfg(feature = "full")]
1413 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1414 impl PartialEq for PatIdent {
eqnull1415     fn eq(&self, other: &Self) -> bool {
1416         self.attrs == other.attrs && self.by_ref == other.by_ref
1417             && self.mutability == other.mutability && self.ident == other.ident
1418             && self.subpat == other.subpat
1419     }
1420 }
1421 #[cfg(feature = "full")]
1422 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1423 impl Eq for PatOr {}
1424 #[cfg(feature = "full")]
1425 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1426 impl PartialEq for PatOr {
eqnull1427     fn eq(&self, other: &Self) -> bool {
1428         self.attrs == other.attrs && self.leading_vert == other.leading_vert
1429             && self.cases == other.cases
1430     }
1431 }
1432 #[cfg(feature = "full")]
1433 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1434 impl Eq for PatParen {}
1435 #[cfg(feature = "full")]
1436 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1437 impl PartialEq for PatParen {
eqnull1438     fn eq(&self, other: &Self) -> bool {
1439         self.attrs == other.attrs && self.pat == other.pat
1440     }
1441 }
1442 #[cfg(feature = "full")]
1443 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1444 impl Eq for PatReference {}
1445 #[cfg(feature = "full")]
1446 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1447 impl PartialEq for PatReference {
eqnull1448     fn eq(&self, other: &Self) -> bool {
1449         self.attrs == other.attrs && self.mutability == other.mutability
1450             && self.pat == other.pat
1451     }
1452 }
1453 #[cfg(feature = "full")]
1454 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1455 impl Eq for PatRest {}
1456 #[cfg(feature = "full")]
1457 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1458 impl PartialEq for PatRest {
eqnull1459     fn eq(&self, other: &Self) -> bool {
1460         self.attrs == other.attrs
1461     }
1462 }
1463 #[cfg(feature = "full")]
1464 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1465 impl Eq for PatSlice {}
1466 #[cfg(feature = "full")]
1467 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1468 impl PartialEq for PatSlice {
eqnull1469     fn eq(&self, other: &Self) -> bool {
1470         self.attrs == other.attrs && self.elems == other.elems
1471     }
1472 }
1473 #[cfg(feature = "full")]
1474 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1475 impl Eq for PatStruct {}
1476 #[cfg(feature = "full")]
1477 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1478 impl PartialEq for PatStruct {
eqnull1479     fn eq(&self, other: &Self) -> bool {
1480         self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
1481             && self.fields == other.fields && self.rest == other.rest
1482     }
1483 }
1484 #[cfg(feature = "full")]
1485 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1486 impl Eq for PatTuple {}
1487 #[cfg(feature = "full")]
1488 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1489 impl PartialEq for PatTuple {
eqnull1490     fn eq(&self, other: &Self) -> bool {
1491         self.attrs == other.attrs && self.elems == other.elems
1492     }
1493 }
1494 #[cfg(feature = "full")]
1495 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1496 impl Eq for PatTupleStruct {}
1497 #[cfg(feature = "full")]
1498 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1499 impl PartialEq for PatTupleStruct {
eqnull1500     fn eq(&self, other: &Self) -> bool {
1501         self.attrs == other.attrs && self.qself == other.qself && self.path == other.path
1502             && self.elems == other.elems
1503     }
1504 }
1505 #[cfg(feature = "full")]
1506 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1507 impl Eq for PatType {}
1508 #[cfg(feature = "full")]
1509 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1510 impl PartialEq for PatType {
eqnull1511     fn eq(&self, other: &Self) -> bool {
1512         self.attrs == other.attrs && self.pat == other.pat && self.ty == other.ty
1513     }
1514 }
1515 #[cfg(feature = "full")]
1516 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1517 impl Eq for PatWild {}
1518 #[cfg(feature = "full")]
1519 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1520 impl PartialEq for PatWild {
eqnull1521     fn eq(&self, other: &Self) -> bool {
1522         self.attrs == other.attrs
1523     }
1524 }
1525 #[cfg(any(feature = "derive", feature = "full"))]
1526 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1527 impl Eq for Path {}
1528 #[cfg(any(feature = "derive", feature = "full"))]
1529 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1530 impl PartialEq for Path {
eqnull1531     fn eq(&self, other: &Self) -> bool {
1532         self.leading_colon == other.leading_colon && self.segments == other.segments
1533     }
1534 }
1535 #[cfg(any(feature = "derive", feature = "full"))]
1536 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1537 impl Eq for PathArguments {}
1538 #[cfg(any(feature = "derive", feature = "full"))]
1539 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1540 impl PartialEq for PathArguments {
eqnull1541     fn eq(&self, other: &Self) -> bool {
1542         match (self, other) {
1543             (PathArguments::None, PathArguments::None) => true,
1544             (
1545                 PathArguments::AngleBracketed(self0),
1546                 PathArguments::AngleBracketed(other0),
1547             ) => self0 == other0,
1548             (
1549                 PathArguments::Parenthesized(self0),
1550                 PathArguments::Parenthesized(other0),
1551             ) => self0 == other0,
1552             _ => false,
1553         }
1554     }
1555 }
1556 #[cfg(any(feature = "derive", feature = "full"))]
1557 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1558 impl Eq for PathSegment {}
1559 #[cfg(any(feature = "derive", feature = "full"))]
1560 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1561 impl PartialEq for PathSegment {
eqnull1562     fn eq(&self, other: &Self) -> bool {
1563         self.ident == other.ident && self.arguments == other.arguments
1564     }
1565 }
1566 #[cfg(any(feature = "derive", feature = "full"))]
1567 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1568 impl Eq for PredicateLifetime {}
1569 #[cfg(any(feature = "derive", feature = "full"))]
1570 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1571 impl PartialEq for PredicateLifetime {
eqnull1572     fn eq(&self, other: &Self) -> bool {
1573         self.lifetime == other.lifetime && self.bounds == other.bounds
1574     }
1575 }
1576 #[cfg(any(feature = "derive", feature = "full"))]
1577 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1578 impl Eq for PredicateType {}
1579 #[cfg(any(feature = "derive", feature = "full"))]
1580 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1581 impl PartialEq for PredicateType {
eqnull1582     fn eq(&self, other: &Self) -> bool {
1583         self.lifetimes == other.lifetimes && self.bounded_ty == other.bounded_ty
1584             && self.bounds == other.bounds
1585     }
1586 }
1587 #[cfg(any(feature = "derive", feature = "full"))]
1588 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1589 impl Eq for QSelf {}
1590 #[cfg(any(feature = "derive", feature = "full"))]
1591 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1592 impl PartialEq for QSelf {
eqnull1593     fn eq(&self, other: &Self) -> bool {
1594         self.ty == other.ty && self.position == other.position
1595             && self.as_token == other.as_token
1596     }
1597 }
1598 #[cfg(feature = "full")]
1599 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1600 impl Eq for RangeLimits {}
1601 #[cfg(feature = "full")]
1602 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1603 impl PartialEq for RangeLimits {
eqnull1604     fn eq(&self, other: &Self) -> bool {
1605         match (self, other) {
1606             (RangeLimits::HalfOpen(_), RangeLimits::HalfOpen(_)) => true,
1607             (RangeLimits::Closed(_), RangeLimits::Closed(_)) => true,
1608             _ => false,
1609         }
1610     }
1611 }
1612 #[cfg(feature = "full")]
1613 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1614 impl Eq for Receiver {}
1615 #[cfg(feature = "full")]
1616 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1617 impl PartialEq for Receiver {
eqnull1618     fn eq(&self, other: &Self) -> bool {
1619         self.attrs == other.attrs && self.reference == other.reference
1620             && self.mutability == other.mutability
1621             && self.colon_token == other.colon_token && self.ty == other.ty
1622     }
1623 }
1624 #[cfg(any(feature = "derive", feature = "full"))]
1625 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1626 impl Eq for ReturnType {}
1627 #[cfg(any(feature = "derive", feature = "full"))]
1628 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1629 impl PartialEq for ReturnType {
eqnull1630     fn eq(&self, other: &Self) -> bool {
1631         match (self, other) {
1632             (ReturnType::Default, ReturnType::Default) => true,
1633             (ReturnType::Type(_, self1), ReturnType::Type(_, other1)) => self1 == other1,
1634             _ => false,
1635         }
1636     }
1637 }
1638 #[cfg(feature = "full")]
1639 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1640 impl Eq for Signature {}
1641 #[cfg(feature = "full")]
1642 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1643 impl PartialEq for Signature {
eqnull1644     fn eq(&self, other: &Self) -> bool {
1645         self.constness == other.constness && self.asyncness == other.asyncness
1646             && self.unsafety == other.unsafety && self.abi == other.abi
1647             && self.ident == other.ident && self.generics == other.generics
1648             && self.inputs == other.inputs && self.variadic == other.variadic
1649             && self.output == other.output
1650     }
1651 }
1652 #[cfg(feature = "full")]
1653 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1654 impl Eq for StaticMutability {}
1655 #[cfg(feature = "full")]
1656 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1657 impl PartialEq for StaticMutability {
eqnull1658     fn eq(&self, other: &Self) -> bool {
1659         match (self, other) {
1660             (StaticMutability::Mut(_), StaticMutability::Mut(_)) => true,
1661             (StaticMutability::None, StaticMutability::None) => true,
1662             _ => false,
1663         }
1664     }
1665 }
1666 #[cfg(feature = "full")]
1667 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1668 impl Eq for Stmt {}
1669 #[cfg(feature = "full")]
1670 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1671 impl PartialEq for Stmt {
eqnull1672     fn eq(&self, other: &Self) -> bool {
1673         match (self, other) {
1674             (Stmt::Local(self0), Stmt::Local(other0)) => self0 == other0,
1675             (Stmt::Item(self0), Stmt::Item(other0)) => self0 == other0,
1676             (Stmt::Expr(self0, self1), Stmt::Expr(other0, other1)) => {
1677                 self0 == other0 && self1 == other1
1678             }
1679             (Stmt::Macro(self0), Stmt::Macro(other0)) => self0 == other0,
1680             _ => false,
1681         }
1682     }
1683 }
1684 #[cfg(feature = "full")]
1685 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1686 impl Eq for StmtMacro {}
1687 #[cfg(feature = "full")]
1688 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1689 impl PartialEq for StmtMacro {
eqnull1690     fn eq(&self, other: &Self) -> bool {
1691         self.attrs == other.attrs && self.mac == other.mac
1692             && self.semi_token == other.semi_token
1693     }
1694 }
1695 #[cfg(any(feature = "derive", feature = "full"))]
1696 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1697 impl Eq for TraitBound {}
1698 #[cfg(any(feature = "derive", feature = "full"))]
1699 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1700 impl PartialEq for TraitBound {
eqnull1701     fn eq(&self, other: &Self) -> bool {
1702         self.paren_token == other.paren_token && self.modifier == other.modifier
1703             && self.lifetimes == other.lifetimes && self.path == other.path
1704     }
1705 }
1706 #[cfg(any(feature = "derive", feature = "full"))]
1707 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1708 impl Eq for TraitBoundModifier {}
1709 #[cfg(any(feature = "derive", feature = "full"))]
1710 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1711 impl PartialEq for TraitBoundModifier {
eqnull1712     fn eq(&self, other: &Self) -> bool {
1713         match (self, other) {
1714             (TraitBoundModifier::None, TraitBoundModifier::None) => true,
1715             (TraitBoundModifier::Maybe(_), TraitBoundModifier::Maybe(_)) => true,
1716             _ => false,
1717         }
1718     }
1719 }
1720 #[cfg(feature = "full")]
1721 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1722 impl Eq for TraitItem {}
1723 #[cfg(feature = "full")]
1724 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1725 impl PartialEq for TraitItem {
eqnull1726     fn eq(&self, other: &Self) -> bool {
1727         match (self, other) {
1728             (TraitItem::Const(self0), TraitItem::Const(other0)) => self0 == other0,
1729             (TraitItem::Fn(self0), TraitItem::Fn(other0)) => self0 == other0,
1730             (TraitItem::Type(self0), TraitItem::Type(other0)) => self0 == other0,
1731             (TraitItem::Macro(self0), TraitItem::Macro(other0)) => self0 == other0,
1732             (TraitItem::Verbatim(self0), TraitItem::Verbatim(other0)) => {
1733                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
1734             }
1735             _ => false,
1736         }
1737     }
1738 }
1739 #[cfg(feature = "full")]
1740 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1741 impl Eq for TraitItemConst {}
1742 #[cfg(feature = "full")]
1743 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1744 impl PartialEq for TraitItemConst {
eqnull1745     fn eq(&self, other: &Self) -> bool {
1746         self.attrs == other.attrs && self.ident == other.ident
1747             && self.generics == other.generics && self.ty == other.ty
1748             && self.default == other.default
1749     }
1750 }
1751 #[cfg(feature = "full")]
1752 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1753 impl Eq for TraitItemFn {}
1754 #[cfg(feature = "full")]
1755 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1756 impl PartialEq for TraitItemFn {
eqnull1757     fn eq(&self, other: &Self) -> bool {
1758         self.attrs == other.attrs && self.sig == other.sig
1759             && self.default == other.default && self.semi_token == other.semi_token
1760     }
1761 }
1762 #[cfg(feature = "full")]
1763 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1764 impl Eq for TraitItemMacro {}
1765 #[cfg(feature = "full")]
1766 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1767 impl PartialEq for TraitItemMacro {
eqnull1768     fn eq(&self, other: &Self) -> bool {
1769         self.attrs == other.attrs && self.mac == other.mac
1770             && self.semi_token == other.semi_token
1771     }
1772 }
1773 #[cfg(feature = "full")]
1774 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1775 impl Eq for TraitItemType {}
1776 #[cfg(feature = "full")]
1777 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1778 impl PartialEq for TraitItemType {
eqnull1779     fn eq(&self, other: &Self) -> bool {
1780         self.attrs == other.attrs && self.ident == other.ident
1781             && self.generics == other.generics && self.colon_token == other.colon_token
1782             && self.bounds == other.bounds && self.default == other.default
1783     }
1784 }
1785 #[cfg(any(feature = "derive", feature = "full"))]
1786 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1787 impl Eq for Type {}
1788 #[cfg(any(feature = "derive", feature = "full"))]
1789 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1790 impl PartialEq for Type {
eqnull1791     fn eq(&self, other: &Self) -> bool {
1792         match (self, other) {
1793             (Type::Array(self0), Type::Array(other0)) => self0 == other0,
1794             (Type::BareFn(self0), Type::BareFn(other0)) => self0 == other0,
1795             (Type::Group(self0), Type::Group(other0)) => self0 == other0,
1796             (Type::ImplTrait(self0), Type::ImplTrait(other0)) => self0 == other0,
1797             (Type::Infer(self0), Type::Infer(other0)) => self0 == other0,
1798             (Type::Macro(self0), Type::Macro(other0)) => self0 == other0,
1799             (Type::Never(self0), Type::Never(other0)) => self0 == other0,
1800             (Type::Paren(self0), Type::Paren(other0)) => self0 == other0,
1801             (Type::Path(self0), Type::Path(other0)) => self0 == other0,
1802             (Type::Ptr(self0), Type::Ptr(other0)) => self0 == other0,
1803             (Type::Reference(self0), Type::Reference(other0)) => self0 == other0,
1804             (Type::Slice(self0), Type::Slice(other0)) => self0 == other0,
1805             (Type::TraitObject(self0), Type::TraitObject(other0)) => self0 == other0,
1806             (Type::Tuple(self0), Type::Tuple(other0)) => self0 == other0,
1807             (Type::Verbatim(self0), Type::Verbatim(other0)) => {
1808                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
1809             }
1810             _ => false,
1811         }
1812     }
1813 }
1814 #[cfg(any(feature = "derive", feature = "full"))]
1815 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1816 impl Eq for TypeArray {}
1817 #[cfg(any(feature = "derive", feature = "full"))]
1818 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1819 impl PartialEq for TypeArray {
eqnull1820     fn eq(&self, other: &Self) -> bool {
1821         self.elem == other.elem && self.len == other.len
1822     }
1823 }
1824 #[cfg(any(feature = "derive", feature = "full"))]
1825 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1826 impl Eq for TypeBareFn {}
1827 #[cfg(any(feature = "derive", feature = "full"))]
1828 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1829 impl PartialEq for TypeBareFn {
eqnull1830     fn eq(&self, other: &Self) -> bool {
1831         self.lifetimes == other.lifetimes && self.unsafety == other.unsafety
1832             && self.abi == other.abi && self.inputs == other.inputs
1833             && self.variadic == other.variadic && self.output == other.output
1834     }
1835 }
1836 #[cfg(any(feature = "derive", feature = "full"))]
1837 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1838 impl Eq for TypeGroup {}
1839 #[cfg(any(feature = "derive", feature = "full"))]
1840 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1841 impl PartialEq for TypeGroup {
eqnull1842     fn eq(&self, other: &Self) -> bool {
1843         self.elem == other.elem
1844     }
1845 }
1846 #[cfg(any(feature = "derive", feature = "full"))]
1847 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1848 impl Eq for TypeImplTrait {}
1849 #[cfg(any(feature = "derive", feature = "full"))]
1850 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1851 impl PartialEq for TypeImplTrait {
eqnull1852     fn eq(&self, other: &Self) -> bool {
1853         self.bounds == other.bounds
1854     }
1855 }
1856 #[cfg(any(feature = "derive", feature = "full"))]
1857 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1858 impl Eq for TypeInfer {}
1859 #[cfg(any(feature = "derive", feature = "full"))]
1860 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1861 impl PartialEq for TypeInfer {
eqnull1862     fn eq(&self, _other: &Self) -> bool {
1863         true
1864     }
1865 }
1866 #[cfg(any(feature = "derive", feature = "full"))]
1867 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1868 impl Eq for TypeMacro {}
1869 #[cfg(any(feature = "derive", feature = "full"))]
1870 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1871 impl PartialEq for TypeMacro {
eqnull1872     fn eq(&self, other: &Self) -> bool {
1873         self.mac == other.mac
1874     }
1875 }
1876 #[cfg(any(feature = "derive", feature = "full"))]
1877 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1878 impl Eq for TypeNever {}
1879 #[cfg(any(feature = "derive", feature = "full"))]
1880 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1881 impl PartialEq for TypeNever {
eqnull1882     fn eq(&self, _other: &Self) -> bool {
1883         true
1884     }
1885 }
1886 #[cfg(any(feature = "derive", feature = "full"))]
1887 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1888 impl Eq for TypeParam {}
1889 #[cfg(any(feature = "derive", feature = "full"))]
1890 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1891 impl PartialEq for TypeParam {
eqnull1892     fn eq(&self, other: &Self) -> bool {
1893         self.attrs == other.attrs && self.ident == other.ident
1894             && self.colon_token == other.colon_token && self.bounds == other.bounds
1895             && self.eq_token == other.eq_token && self.default == other.default
1896     }
1897 }
1898 #[cfg(any(feature = "derive", feature = "full"))]
1899 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1900 impl Eq for TypeParamBound {}
1901 #[cfg(any(feature = "derive", feature = "full"))]
1902 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1903 impl PartialEq for TypeParamBound {
eqnull1904     fn eq(&self, other: &Self) -> bool {
1905         match (self, other) {
1906             (TypeParamBound::Trait(self0), TypeParamBound::Trait(other0)) => {
1907                 self0 == other0
1908             }
1909             (TypeParamBound::Lifetime(self0), TypeParamBound::Lifetime(other0)) => {
1910                 self0 == other0
1911             }
1912             (TypeParamBound::Verbatim(self0), TypeParamBound::Verbatim(other0)) => {
1913                 TokenStreamHelper(self0) == TokenStreamHelper(other0)
1914             }
1915             _ => false,
1916         }
1917     }
1918 }
1919 #[cfg(any(feature = "derive", feature = "full"))]
1920 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1921 impl Eq for TypeParen {}
1922 #[cfg(any(feature = "derive", feature = "full"))]
1923 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1924 impl PartialEq for TypeParen {
eqnull1925     fn eq(&self, other: &Self) -> bool {
1926         self.elem == other.elem
1927     }
1928 }
1929 #[cfg(any(feature = "derive", feature = "full"))]
1930 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1931 impl Eq for TypePath {}
1932 #[cfg(any(feature = "derive", feature = "full"))]
1933 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1934 impl PartialEq for TypePath {
eqnull1935     fn eq(&self, other: &Self) -> bool {
1936         self.qself == other.qself && self.path == other.path
1937     }
1938 }
1939 #[cfg(any(feature = "derive", feature = "full"))]
1940 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1941 impl Eq for TypePtr {}
1942 #[cfg(any(feature = "derive", feature = "full"))]
1943 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1944 impl PartialEq for TypePtr {
eqnull1945     fn eq(&self, other: &Self) -> bool {
1946         self.const_token == other.const_token && self.mutability == other.mutability
1947             && self.elem == other.elem
1948     }
1949 }
1950 #[cfg(any(feature = "derive", feature = "full"))]
1951 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1952 impl Eq for TypeReference {}
1953 #[cfg(any(feature = "derive", feature = "full"))]
1954 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1955 impl PartialEq for TypeReference {
eqnull1956     fn eq(&self, other: &Self) -> bool {
1957         self.lifetime == other.lifetime && self.mutability == other.mutability
1958             && self.elem == other.elem
1959     }
1960 }
1961 #[cfg(any(feature = "derive", feature = "full"))]
1962 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1963 impl Eq for TypeSlice {}
1964 #[cfg(any(feature = "derive", feature = "full"))]
1965 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1966 impl PartialEq for TypeSlice {
eqnull1967     fn eq(&self, other: &Self) -> bool {
1968         self.elem == other.elem
1969     }
1970 }
1971 #[cfg(any(feature = "derive", feature = "full"))]
1972 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1973 impl Eq for TypeTraitObject {}
1974 #[cfg(any(feature = "derive", feature = "full"))]
1975 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1976 impl PartialEq for TypeTraitObject {
eqnull1977     fn eq(&self, other: &Self) -> bool {
1978         self.dyn_token == other.dyn_token && self.bounds == other.bounds
1979     }
1980 }
1981 #[cfg(any(feature = "derive", feature = "full"))]
1982 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1983 impl Eq for TypeTuple {}
1984 #[cfg(any(feature = "derive", feature = "full"))]
1985 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1986 impl PartialEq for TypeTuple {
eqnull1987     fn eq(&self, other: &Self) -> bool {
1988         self.elems == other.elems
1989     }
1990 }
1991 #[cfg(any(feature = "derive", feature = "full"))]
1992 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1993 impl Eq for UnOp {}
1994 #[cfg(any(feature = "derive", feature = "full"))]
1995 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
1996 impl PartialEq for UnOp {
eqnull1997     fn eq(&self, other: &Self) -> bool {
1998         match (self, other) {
1999             (UnOp::Deref(_), UnOp::Deref(_)) => true,
2000             (UnOp::Not(_), UnOp::Not(_)) => true,
2001             (UnOp::Neg(_), UnOp::Neg(_)) => true,
2002             _ => false,
2003         }
2004     }
2005 }
2006 #[cfg(feature = "full")]
2007 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2008 impl Eq for UseGlob {}
2009 #[cfg(feature = "full")]
2010 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2011 impl PartialEq for UseGlob {
eqnull2012     fn eq(&self, _other: &Self) -> bool {
2013         true
2014     }
2015 }
2016 #[cfg(feature = "full")]
2017 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2018 impl Eq for UseGroup {}
2019 #[cfg(feature = "full")]
2020 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2021 impl PartialEq for UseGroup {
eqnull2022     fn eq(&self, other: &Self) -> bool {
2023         self.items == other.items
2024     }
2025 }
2026 #[cfg(feature = "full")]
2027 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2028 impl Eq for UseName {}
2029 #[cfg(feature = "full")]
2030 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2031 impl PartialEq for UseName {
eqnull2032     fn eq(&self, other: &Self) -> bool {
2033         self.ident == other.ident
2034     }
2035 }
2036 #[cfg(feature = "full")]
2037 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2038 impl Eq for UsePath {}
2039 #[cfg(feature = "full")]
2040 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2041 impl PartialEq for UsePath {
eqnull2042     fn eq(&self, other: &Self) -> bool {
2043         self.ident == other.ident && self.tree == other.tree
2044     }
2045 }
2046 #[cfg(feature = "full")]
2047 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2048 impl Eq for UseRename {}
2049 #[cfg(feature = "full")]
2050 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2051 impl PartialEq for UseRename {
eqnull2052     fn eq(&self, other: &Self) -> bool {
2053         self.ident == other.ident && self.rename == other.rename
2054     }
2055 }
2056 #[cfg(feature = "full")]
2057 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2058 impl Eq for UseTree {}
2059 #[cfg(feature = "full")]
2060 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2061 impl PartialEq for UseTree {
eqnull2062     fn eq(&self, other: &Self) -> bool {
2063         match (self, other) {
2064             (UseTree::Path(self0), UseTree::Path(other0)) => self0 == other0,
2065             (UseTree::Name(self0), UseTree::Name(other0)) => self0 == other0,
2066             (UseTree::Rename(self0), UseTree::Rename(other0)) => self0 == other0,
2067             (UseTree::Glob(self0), UseTree::Glob(other0)) => self0 == other0,
2068             (UseTree::Group(self0), UseTree::Group(other0)) => self0 == other0,
2069             _ => false,
2070         }
2071     }
2072 }
2073 #[cfg(feature = "full")]
2074 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2075 impl Eq for Variadic {}
2076 #[cfg(feature = "full")]
2077 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2078 impl PartialEq for Variadic {
eqnull2079     fn eq(&self, other: &Self) -> bool {
2080         self.attrs == other.attrs && self.pat == other.pat && self.comma == other.comma
2081     }
2082 }
2083 #[cfg(any(feature = "derive", feature = "full"))]
2084 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2085 impl Eq for Variant {}
2086 #[cfg(any(feature = "derive", feature = "full"))]
2087 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2088 impl PartialEq for Variant {
eqnull2089     fn eq(&self, other: &Self) -> bool {
2090         self.attrs == other.attrs && self.ident == other.ident
2091             && self.fields == other.fields && self.discriminant == other.discriminant
2092     }
2093 }
2094 #[cfg(any(feature = "derive", feature = "full"))]
2095 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2096 impl Eq for VisRestricted {}
2097 #[cfg(any(feature = "derive", feature = "full"))]
2098 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2099 impl PartialEq for VisRestricted {
eqnull2100     fn eq(&self, other: &Self) -> bool {
2101         self.in_token == other.in_token && self.path == other.path
2102     }
2103 }
2104 #[cfg(any(feature = "derive", feature = "full"))]
2105 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2106 impl Eq for Visibility {}
2107 #[cfg(any(feature = "derive", feature = "full"))]
2108 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2109 impl PartialEq for Visibility {
eqnull2110     fn eq(&self, other: &Self) -> bool {
2111         match (self, other) {
2112             (Visibility::Public(_), Visibility::Public(_)) => true,
2113             (Visibility::Restricted(self0), Visibility::Restricted(other0)) => {
2114                 self0 == other0
2115             }
2116             (Visibility::Inherited, Visibility::Inherited) => true,
2117             _ => false,
2118         }
2119     }
2120 }
2121 #[cfg(any(feature = "derive", feature = "full"))]
2122 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2123 impl Eq for WhereClause {}
2124 #[cfg(any(feature = "derive", feature = "full"))]
2125 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2126 impl PartialEq for WhereClause {
eqnull2127     fn eq(&self, other: &Self) -> bool {
2128         self.predicates == other.predicates
2129     }
2130 }
2131 #[cfg(any(feature = "derive", feature = "full"))]
2132 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2133 impl Eq for WherePredicate {}
2134 #[cfg(any(feature = "derive", feature = "full"))]
2135 #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
2136 impl PartialEq for WherePredicate {
eqnull2137     fn eq(&self, other: &Self) -> bool {
2138         match (self, other) {
2139             (WherePredicate::Lifetime(self0), WherePredicate::Lifetime(other0)) => {
2140                 self0 == other0
2141             }
2142             (WherePredicate::Type(self0), WherePredicate::Type(other0)) => {
2143                 self0 == other0
2144             }
2145             _ => false,
2146         }
2147     }
2148 }
2149