@@ -367,9 +367,24 @@ pub struct Monos {
367
367
max_generics : u32 ,
368
368
369
369
/// The maximum number of individual monomorphizations to list for each
370
- /// generic function.
370
+ /// listed generic function.
371
371
#[ structopt( short = "n" , long = "max-monos" , default_value = "10" ) ]
372
372
max_monos : u32 ,
373
+
374
+ /// List all generics and all of their individual monomorphizations.
375
+ /// If combined with -g then monomorphizations are hidden.
376
+ /// Overrides -m <max_generics> and -n <max_monos>
377
+ #[ structopt( short = "a" , long = "all" ) ]
378
+ all_generics_and_monos : bool ,
379
+
380
+ /// List all generics. Overrides -m <max_generics>
381
+ #[ structopt( long = "all-generics" ) ]
382
+ all_generics : bool ,
383
+
384
+ /// List all individual monomorphizations for each listed generic
385
+ /// function. Overrides -n <max_monos>
386
+ #[ structopt( long = "all-monos" ) ]
387
+ all_monos : bool ,
373
388
}
374
389
375
390
impl Default for Monos {
@@ -385,6 +400,10 @@ impl Default for Monos {
385
400
only_generics : false ,
386
401
max_generics : 10 ,
387
402
max_monos : 10 ,
403
+
404
+ all_generics_and_monos : false ,
405
+ all_generics : false ,
406
+ all_monos : false ,
388
407
}
389
408
}
390
409
}
@@ -403,13 +422,21 @@ impl Monos {
403
422
404
423
/// The maximum number of generics to list.
405
424
pub fn max_generics ( & self ) -> u32 {
406
- self . max_generics
425
+ if self . all_generics_and_monos || self . all_generics {
426
+ u32:: MAX
427
+ } else {
428
+ self . max_generics
429
+ }
407
430
}
408
431
409
432
/// The maximum number of individual monomorphizations to list for each
410
433
/// generic function.
411
434
pub fn max_monos ( & self ) -> u32 {
412
- self . max_monos
435
+ if self . all_generics_and_monos || self . all_monos {
436
+ u32:: MAX
437
+ } else {
438
+ self . max_monos
439
+ }
413
440
}
414
441
415
442
/// Set whether to hide individual monomorphizations and only show the
@@ -421,12 +448,22 @@ impl Monos {
421
448
/// Set the maximum number of generics to list.
422
449
pub fn set_max_generics ( & mut self , max : u32 ) {
423
450
self . max_generics = max;
451
+ self . all_generics = false ;
452
+ if self . all_generics_and_monos {
453
+ self . all_generics_and_monos = false ;
454
+ self . all_monos = true ;
455
+ }
424
456
}
425
457
426
458
/// Set the maximum number of individual monomorphizations to list for each
427
459
/// generic function.
428
460
pub fn set_max_monos ( & mut self , max : u32 ) {
429
461
self . max_monos = max;
462
+ self . all_monos = false ;
463
+ if self . all_generics_and_monos {
464
+ self . all_generics_and_monos = false ;
465
+ self . all_generics = true ;
466
+ }
430
467
}
431
468
}
432
469
0 commit comments