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