@@ -14,7 +14,7 @@ pub const FORMAT_VERSION: u32 = 15;
14
14
/// A `Crate` is the root of the emitted JSON blob. It contains all type/documentation information
15
15
/// about the language items in the local crate, as well as info about external items to allow
16
16
/// tools to find or link to them.
17
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
17
+ #[ derive( Clone , Debug , PartialEq , Eq , Serialize , Deserialize ) ]
18
18
pub struct Crate {
19
19
/// The id of the root [`Module`] item of the local crate.
20
20
pub root : Id ,
@@ -34,7 +34,7 @@ pub struct Crate {
34
34
pub format_version : u32 ,
35
35
}
36
36
37
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
37
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
38
38
pub struct ExternalCrate {
39
39
pub name : String ,
40
40
pub html_root_url : Option < String > ,
@@ -44,7 +44,7 @@ pub struct ExternalCrate {
44
44
/// information. This struct should contain enough to generate a link/reference to the item in
45
45
/// question, or can be used by a tool that takes the json output of multiple crates to find
46
46
/// the actual item definition with all the relevant info.
47
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
47
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
48
48
pub struct ItemSummary {
49
49
/// Can be used to look up the name and html_root_url of the crate this item came from in the
50
50
/// `external_crates` map.
@@ -56,7 +56,7 @@ pub struct ItemSummary {
56
56
pub kind : ItemKind ,
57
57
}
58
58
59
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
59
+ #[ derive( Clone , Debug , PartialEq , Eq , Serialize , Deserialize ) ]
60
60
pub struct Item {
61
61
/// The unique identifier of this item. Can be used to find this item in various mappings.
62
62
pub id : Id ,
@@ -83,7 +83,7 @@ pub struct Item {
83
83
pub inner : ItemEnum ,
84
84
}
85
85
86
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
86
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
87
87
pub struct Span {
88
88
/// The path to the source file for this span relative to the path `rustdoc` was invoked with.
89
89
pub filename : PathBuf ,
@@ -93,13 +93,13 @@ pub struct Span {
93
93
pub end : ( usize , usize ) ,
94
94
}
95
95
96
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
96
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
97
97
pub struct Deprecation {
98
98
pub since : Option < String > ,
99
99
pub note : Option < String > ,
100
100
}
101
101
102
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
102
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
103
103
#[ serde( rename_all = "snake_case" ) ]
104
104
pub enum Visibility {
105
105
Public ,
@@ -115,7 +115,7 @@ pub enum Visibility {
115
115
} ,
116
116
}
117
117
118
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
118
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
119
119
#[ serde( rename_all = "snake_case" ) ]
120
120
pub enum GenericArgs {
121
121
/// <'a, 32, B: Copy, C = u32>
@@ -124,7 +124,7 @@ pub enum GenericArgs {
124
124
Parenthesized { inputs : Vec < Type > , output : Option < Type > } ,
125
125
}
126
126
127
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
127
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
128
128
#[ serde( rename_all = "snake_case" ) ]
129
129
pub enum GenericArg {
130
130
Lifetime ( String ) ,
@@ -133,7 +133,7 @@ pub enum GenericArg {
133
133
Infer ,
134
134
}
135
135
136
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
136
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
137
137
pub struct Constant {
138
138
#[ serde( rename = "type" ) ]
139
139
pub type_ : Type ,
@@ -142,14 +142,14 @@ pub struct Constant {
142
142
pub is_literal : bool ,
143
143
}
144
144
145
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
145
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
146
146
pub struct TypeBinding {
147
147
pub name : String ,
148
148
pub args : GenericArgs ,
149
149
pub binding : TypeBindingKind ,
150
150
}
151
151
152
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
152
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
153
153
#[ serde( rename_all = "snake_case" ) ]
154
154
pub enum TypeBindingKind {
155
155
Equality ( Term ) ,
@@ -159,7 +159,7 @@ pub enum TypeBindingKind {
159
159
#[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
160
160
pub struct Id ( pub String ) ;
161
161
162
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
162
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
163
163
#[ serde( rename_all = "snake_case" ) ]
164
164
pub enum ItemKind {
165
165
Module ,
@@ -189,7 +189,7 @@ pub enum ItemKind {
189
189
Keyword ,
190
190
}
191
191
192
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
192
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
193
193
#[ serde( tag = "kind" , content = "inner" , rename_all = "snake_case" ) ]
194
194
pub enum ItemEnum {
195
195
Module ( Module ) ,
@@ -241,21 +241,21 @@ pub enum ItemEnum {
241
241
} ,
242
242
}
243
243
244
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
244
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
245
245
pub struct Module {
246
246
pub is_crate : bool ,
247
247
pub items : Vec < Id > ,
248
248
}
249
249
250
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
250
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
251
251
pub struct Union {
252
252
pub generics : Generics ,
253
253
pub fields_stripped : bool ,
254
254
pub fields : Vec < Id > ,
255
255
pub impls : Vec < Id > ,
256
256
}
257
257
258
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
258
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
259
259
pub struct Struct {
260
260
pub struct_type : StructType ,
261
261
pub generics : Generics ,
@@ -264,15 +264,15 @@ pub struct Struct {
264
264
pub impls : Vec < Id > ,
265
265
}
266
266
267
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
267
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
268
268
pub struct Enum {
269
269
pub generics : Generics ,
270
270
pub variants_stripped : bool ,
271
271
pub variants : Vec < Id > ,
272
272
pub impls : Vec < Id > ,
273
273
}
274
274
275
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
275
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
276
276
#[ serde( rename_all = "snake_case" ) ]
277
277
#[ serde( tag = "variant_kind" , content = "variant_inner" ) ]
278
278
pub enum Variant {
@@ -281,15 +281,15 @@ pub enum Variant {
281
281
Struct ( Vec < Id > ) ,
282
282
}
283
283
284
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
284
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
285
285
#[ serde( rename_all = "snake_case" ) ]
286
286
pub enum StructType {
287
287
Plain ,
288
288
Tuple ,
289
289
Unit ,
290
290
}
291
291
292
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq , Eq , Hash ) ]
292
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
293
293
pub struct Header {
294
294
#[ serde( rename = "const" ) ]
295
295
pub const_ : bool ,
@@ -300,7 +300,7 @@ pub struct Header {
300
300
pub abi : Abi ,
301
301
}
302
302
303
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq , Eq , Hash ) ]
303
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
304
304
pub enum Abi {
305
305
// We only have a concrete listing here for stable ABI's because their are so many
306
306
// See rustc_ast_passes::feature_gate::PostExpansionVisitor::check_abi for the list
@@ -316,34 +316,34 @@ pub enum Abi {
316
316
Other ( String ) ,
317
317
}
318
318
319
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
319
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
320
320
pub struct Function {
321
321
pub decl : FnDecl ,
322
322
pub generics : Generics ,
323
323
pub header : Header ,
324
324
}
325
325
326
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
326
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
327
327
pub struct Method {
328
328
pub decl : FnDecl ,
329
329
pub generics : Generics ,
330
330
pub header : Header ,
331
331
pub has_body : bool ,
332
332
}
333
333
334
- #[ derive( Clone , Debug , Default , Serialize , Deserialize , PartialEq ) ]
334
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
335
335
pub struct Generics {
336
336
pub params : Vec < GenericParamDef > ,
337
337
pub where_predicates : Vec < WherePredicate > ,
338
338
}
339
339
340
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
340
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
341
341
pub struct GenericParamDef {
342
342
pub name : String ,
343
343
pub kind : GenericParamDefKind ,
344
344
}
345
345
346
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
346
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
347
347
#[ serde( rename_all = "snake_case" ) ]
348
348
pub enum GenericParamDefKind {
349
349
Lifetime {
@@ -384,7 +384,7 @@ pub enum GenericParamDefKind {
384
384
} ,
385
385
}
386
386
387
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
387
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
388
388
#[ serde( rename_all = "snake_case" ) ]
389
389
pub enum WherePredicate {
390
390
BoundPredicate {
@@ -410,7 +410,7 @@ pub enum WherePredicate {
410
410
} ,
411
411
}
412
412
413
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
413
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
414
414
#[ serde( rename_all = "snake_case" ) ]
415
415
pub enum GenericBound {
416
416
TraitBound {
@@ -429,22 +429,22 @@ pub enum GenericBound {
429
429
Outlives ( String ) ,
430
430
}
431
431
432
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
432
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
433
433
#[ serde( rename_all = "snake_case" ) ]
434
434
pub enum TraitBoundModifier {
435
435
None ,
436
436
Maybe ,
437
437
MaybeConst ,
438
438
}
439
439
440
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
440
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
441
441
#[ serde( rename_all = "snake_case" ) ]
442
442
pub enum Term {
443
443
Type ( Type ) ,
444
444
Constant ( Constant ) ,
445
445
}
446
446
447
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
447
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
448
448
#[ serde( rename_all = "snake_case" ) ]
449
449
#[ serde( tag = "kind" , content = "inner" ) ]
450
450
pub enum Type {
@@ -498,7 +498,7 @@ pub enum Type {
498
498
} ,
499
499
}
500
500
501
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
501
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
502
502
pub struct FunctionPointer {
503
503
pub decl : FnDecl ,
504
504
/// Used for Higher-Rank Trait Bounds (HRTBs)
@@ -512,14 +512,14 @@ pub struct FunctionPointer {
512
512
pub header : Header ,
513
513
}
514
514
515
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
515
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
516
516
pub struct FnDecl {
517
517
pub inputs : Vec < ( String , Type ) > ,
518
518
pub output : Option < Type > ,
519
519
pub c_variadic : bool ,
520
520
}
521
521
522
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
522
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
523
523
pub struct Trait {
524
524
pub is_auto : bool ,
525
525
pub is_unsafe : bool ,
@@ -529,13 +529,13 @@ pub struct Trait {
529
529
pub implementations : Vec < Id > ,
530
530
}
531
531
532
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
532
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
533
533
pub struct TraitAlias {
534
534
pub generics : Generics ,
535
535
pub params : Vec < GenericBound > ,
536
536
}
537
537
538
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
538
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
539
539
pub struct Impl {
540
540
pub is_unsafe : bool ,
541
541
pub generics : Generics ,
@@ -550,7 +550,7 @@ pub struct Impl {
550
550
pub blanket_impl : Option < Type > ,
551
551
}
552
552
553
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
553
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
554
554
#[ serde( rename_all = "snake_case" ) ]
555
555
pub struct Import {
556
556
/// The full path being imported.
@@ -564,37 +564,37 @@ pub struct Import {
564
564
pub glob : bool ,
565
565
}
566
566
567
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
567
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
568
568
pub struct ProcMacro {
569
569
pub kind : MacroKind ,
570
570
pub helpers : Vec < String > ,
571
571
}
572
572
573
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
573
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
574
574
#[ serde( rename_all = "snake_case" ) ]
575
575
pub enum MacroKind {
576
576
/// A bang macro `foo!()`.
577
577
Bang ,
578
578
/// An attribute macro `#[foo]`.
579
579
Attr ,
580
- /// A derive macro `#[derive(Foo )]`
580
+ /// A derive macro `#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize )]`
581
581
Derive ,
582
582
}
583
583
584
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
584
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
585
585
pub struct Typedef {
586
586
#[ serde( rename = "type" ) ]
587
587
pub type_ : Type ,
588
588
pub generics : Generics ,
589
589
}
590
590
591
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
591
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
592
592
pub struct OpaqueTy {
593
593
pub bounds : Vec < GenericBound > ,
594
594
pub generics : Generics ,
595
595
}
596
596
597
- #[ derive( Clone , Debug , Serialize , Deserialize , PartialEq ) ]
597
+ #[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
598
598
pub struct Static {
599
599
#[ serde( rename = "type" ) ]
600
600
pub type_ : Type ,
0 commit comments