File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1336,13 +1336,29 @@ impl<T: Idx> GrowableBitSet<T> {
13361336 self . bit_set . insert ( elem)
13371337 }
13381338
1339+ #[ inline]
1340+ pub fn insert_range ( & mut self , elems : Range < T > ) {
1341+ self . ensure ( elems. end . index ( ) ) ;
1342+ self . bit_set . insert_range ( elems) ;
1343+ }
1344+
13391345 /// Returns `true` if the set has changed.
13401346 #[ inline]
13411347 pub fn remove ( & mut self , elem : T ) -> bool {
13421348 self . ensure ( elem. index ( ) + 1 ) ;
13431349 self . bit_set . remove ( elem)
13441350 }
13451351
1352+ #[ inline]
1353+ pub fn clear ( & mut self ) {
1354+ self . bit_set . clear ( ) ;
1355+ }
1356+
1357+ #[ inline]
1358+ pub fn count ( & self ) -> usize {
1359+ self . bit_set . count ( )
1360+ }
1361+
13461362 #[ inline]
13471363 pub fn is_empty ( & self ) -> bool {
13481364 self . bit_set . is_empty ( )
@@ -1354,6 +1370,16 @@ impl<T: Idx> GrowableBitSet<T> {
13541370 self . bit_set . words . get ( word_index) . is_some_and ( |word| ( word & mask) != 0 )
13551371 }
13561372
1373+ #[ inline]
1374+ pub fn contains_any ( & self , elems : Range < T > ) -> bool {
1375+ if elems. start . index ( ) < self . bit_set . domain_size {
1376+ self . bit_set
1377+ . contains_any ( elems. start ..T :: new ( elems. end . index ( ) . min ( self . bit_set . domain_size ) ) )
1378+ } else {
1379+ false
1380+ }
1381+ }
1382+
13571383 #[ inline]
13581384 pub fn iter ( & self ) -> BitIter < ' _ , T > {
13591385 self . bit_set . iter ( )
You can’t perform that action at this time.
0 commit comments