@@ -61,6 +61,8 @@ fn generate_for_groups(
6161 let mut group_idents = Vec :: with_capacity ( groups. len ( ) ) ;
6262 let mut group_strings = Vec :: with_capacity ( groups. len ( ) ) ;
6363 let mut group_as_default_rules = Vec :: with_capacity ( groups. len ( ) ) ;
64+ let mut group_as_disabled_rules = Vec :: with_capacity ( groups. len ( ) ) ;
65+
6466 for ( group, rules) in groups {
6567 let group_pascal_ident = quote:: format_ident!( "{}" , & Case :: Pascal . convert( group) ) ;
6668 let group_ident = quote:: format_ident!( "{}" , group) ;
@@ -95,6 +97,12 @@ fn generate_for_groups(
9597 }
9698 } ) ;
9799
100+ group_as_disabled_rules. push ( quote ! {
101+ if let Some ( group) = self . #group_ident. as_ref( ) {
102+ disabled_rules. extend( & group. get_disabled_rules( ) ) ;
103+ }
104+ } ) ;
105+
98106 group_pascal_idents. push ( group_pascal_ident) ;
99107 group_idents. push ( group_ident) ;
100108 group_strings. push ( Literal :: string ( group) ) ;
@@ -246,6 +254,13 @@ fn generate_for_groups(
246254 #( #group_as_default_rules ) *
247255 enabled_rules
248256 }
257+
258+ /// It returns the disabled rules by configuration.
259+ pub fn as_disabled_rules( & self ) -> FxHashSet <RuleFilter <' static >> {
260+ let mut disabled_rules = FxHashSet :: default ( ) ;
261+ #( #group_as_disabled_rules ) *
262+ disabled_rules
263+ }
249264 }
250265
251266 #( #struct_groups ) *
@@ -358,6 +373,13 @@ fn generate_for_groups(
358373
359374 enabled_rules. difference( & disabled_rules) . copied( ) . collect( )
360375 }
376+
377+ /// It returns the disabled rules by configuration.
378+ pub fn as_disabled_rules( & self ) -> FxHashSet <RuleFilter <' static >> {
379+ let mut disabled_rules = FxHashSet :: default ( ) ;
380+ #( #group_as_disabled_rules ) *
381+ disabled_rules
382+ }
361383 }
362384
363385 #( #struct_groups ) *
0 commit comments