@@ -579,21 +579,21 @@ impl RoaringBitmap {
579
579
None
580
580
}
581
581
582
- /// Removes the specified number of elements from the top .
582
+ /// Removes the `n` smallests values from this bitmap .
583
583
///
584
584
/// # Examples
585
585
///
586
586
/// ```rust
587
587
/// use roaring::RoaringBitmap;
588
588
///
589
589
/// let mut rb = RoaringBitmap::from_iter([1, 5, 7, 9]);
590
- /// rb.remove_front (2);
590
+ /// rb.remove_smallest (2);
591
591
/// assert_eq!(rb, RoaringBitmap::from_iter([7, 9]));
592
592
///
593
593
/// let mut rb = RoaringBitmap::from_iter([1, 3, 7, 9]);
594
- /// rb.remove_front (2);
594
+ /// rb.remove_smallest (2);
595
595
/// assert_eq!(rb, RoaringBitmap::from_iter([7, 9]));
596
- pub fn remove_front ( & mut self , mut n : u64 ) {
596
+ pub fn remove_smallest ( & mut self , mut n : u64 ) {
597
597
// remove containers up to the front of the target
598
598
let position = self . containers . iter ( ) . position ( |container| {
599
599
let container_len = container. len ( ) ;
@@ -611,23 +611,23 @@ impl RoaringBitmap {
611
611
// remove data in containers if there are still targets for deletion
612
612
if n > 0 && !self . containers . is_empty ( ) {
613
613
// container immediately before should have been deleted, so the target is 0 index
614
- self . containers [ 0 ] . remove_front ( n) ;
614
+ self . containers [ 0 ] . remove_smallest ( n) ;
615
615
}
616
616
}
617
617
618
- /// Removes the specified number of elements from the tail .
618
+ /// Removes the `n` biggests values from this bitmap .
619
619
///
620
620
/// # Examples
621
621
///
622
622
/// ```rust
623
623
/// use roaring::RoaringBitmap;
624
624
///
625
625
/// let mut rb = RoaringBitmap::from_iter([1, 5, 7, 9]);
626
- /// rb.remove_back (2);
626
+ /// rb.remove_biggest (2);
627
627
/// assert_eq!(rb, RoaringBitmap::from_iter([1, 5]));
628
- /// rb.remove_back (1);
628
+ /// rb.remove_biggest (1);
629
629
/// assert_eq!(rb, RoaringBitmap::from_iter([1]));
630
- pub fn remove_back ( & mut self , mut n : u64 ) {
630
+ pub fn remove_biggest ( & mut self , mut n : u64 ) {
631
631
// remove containers up to the back of the target
632
632
let position = self . containers . iter ( ) . rposition ( |container| {
633
633
let container_len = container. len ( ) ;
@@ -642,7 +642,7 @@ impl RoaringBitmap {
642
642
if let Some ( position) = position {
643
643
self . containers . drain ( position + 1 ..) ;
644
644
if n > 0 && !self . containers . is_empty ( ) {
645
- self . containers [ position] . remove_back ( n) ;
645
+ self . containers [ position] . remove_biggest ( n) ;
646
646
}
647
647
} else {
648
648
self . containers . clear ( ) ;
@@ -800,127 +800,127 @@ mod tests {
800
800
}
801
801
802
802
#[ test]
803
- fn remove_front_for_vec ( ) {
803
+ fn remove_smallest_for_vec ( ) {
804
804
let mut bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ;
805
- bitmap. remove_front ( 3 ) ;
805
+ bitmap. remove_smallest ( 3 ) ;
806
806
assert_eq ! ( bitmap. len( ) , 3 ) ;
807
807
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 7 , 9 , 11 ] ) ) ;
808
808
809
809
bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 5 , 7 , 9 , 11 ] ) ;
810
- bitmap. remove_front ( 3 ) ;
810
+ bitmap. remove_smallest ( 3 ) ;
811
811
assert_eq ! ( bitmap. len( ) , 3 ) ;
812
812
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 7 , 9 , 11 ] ) ) ;
813
813
814
814
bitmap = RoaringBitmap :: from_iter ( [ 1 , 3 ] ) ;
815
- bitmap. remove_front ( 2 ) ;
815
+ bitmap. remove_smallest ( 2 ) ;
816
816
assert_eq ! ( bitmap. len( ) , 0 ) ;
817
817
818
818
bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ;
819
- bitmap. remove_front ( 0 ) ;
819
+ bitmap. remove_smallest ( 0 ) ;
820
820
assert_eq ! ( bitmap. len( ) , 6 ) ;
821
821
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ) ;
822
822
823
823
bitmap = RoaringBitmap :: new ( ) ;
824
824
bitmap. insert_range ( 0 ..( 1_u32 << 16 ) + 5 ) ;
825
- bitmap. remove_front ( 65537 ) ;
825
+ bitmap. remove_smallest ( 65537 ) ;
826
826
assert_eq ! ( bitmap. len( ) , 4 ) ;
827
827
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 65537 , 65538 , 65539 , 65540 ] ) ) ;
828
828
829
829
bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 5 , 7 , 9 , 11 ] ) ;
830
- bitmap. remove_front ( 7 ) ;
830
+ bitmap. remove_smallest ( 7 ) ;
831
831
assert_eq ! ( bitmap, RoaringBitmap :: default ( ) ) ;
832
832
}
833
833
834
834
#[ test]
835
- fn remove_front_for_bit ( ) {
835
+ fn remove_smallest_for_bit ( ) {
836
836
let mut bitmap = RoaringBitmap :: new ( ) ;
837
837
bitmap. insert_range ( 0 ..4098 ) ;
838
- bitmap. remove_front ( 4095 ) ;
838
+ bitmap. remove_smallest ( 4095 ) ;
839
839
assert_eq ! ( bitmap. len( ) , 3 ) ;
840
840
// removed bit to vec
841
841
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 4095 , 4096 , 4097 ] ) ) ;
842
842
843
843
bitmap = RoaringBitmap :: new ( ) ;
844
844
bitmap. insert_range ( 0 ..6000 ) ;
845
- bitmap. remove_front ( 999 ) ;
845
+ bitmap. remove_smallest ( 999 ) ;
846
846
assert_eq ! ( bitmap. len( ) , 5001 ) ;
847
847
848
848
bitmap = RoaringBitmap :: new ( ) ;
849
849
bitmap. insert_range ( 0 ..8000 ) ;
850
- bitmap. remove_front ( 10 ) ;
850
+ bitmap. remove_smallest ( 10 ) ;
851
851
assert_eq ! ( bitmap. len( ) , 7990 ) ;
852
852
853
853
bitmap = RoaringBitmap :: new ( ) ;
854
854
bitmap. insert_range ( 0 ..200000 ) ;
855
- bitmap. remove_front ( 2000 ) ;
855
+ bitmap. remove_smallest ( 2000 ) ;
856
856
assert_eq ! ( bitmap. len( ) , 198000 ) ;
857
857
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( 2000 ..200000 ) ) ;
858
858
859
859
bitmap = RoaringBitmap :: new ( ) ;
860
860
bitmap. insert_range ( 0 ..2 ) ;
861
861
bitmap. insert_range ( 4 ..7 ) ;
862
862
bitmap. insert_range ( 1000 ..6000 ) ;
863
- bitmap. remove_front ( 30 ) ;
863
+ bitmap. remove_smallest ( 30 ) ;
864
864
assert_eq ! ( bitmap. len( ) , 4975 ) ;
865
865
866
866
bitmap = RoaringBitmap :: new ( ) ;
867
867
bitmap. insert_range ( 0 ..65535 ) ;
868
- bitmap. remove_front ( 0 ) ;
868
+ bitmap. remove_smallest ( 0 ) ;
869
869
assert_eq ! ( bitmap. len( ) , 65535 ) ;
870
870
}
871
871
872
872
#[ test]
873
- fn remove_back_for_bit ( ) {
873
+ fn remove_biggest_for_bit ( ) {
874
874
let mut bitmap = RoaringBitmap :: new ( ) ;
875
875
bitmap. insert_range ( 0 ..5000 ) ;
876
- bitmap. remove_back ( 1000 ) ;
876
+ bitmap. remove_biggest ( 1000 ) ;
877
877
assert_eq ! ( bitmap. len( ) , 4000 ) ;
878
878
879
879
bitmap = RoaringBitmap :: new ( ) ;
880
880
bitmap. insert_range ( 0 ..6000 ) ;
881
- bitmap. remove_back ( 1000 ) ;
881
+ bitmap. remove_biggest ( 1000 ) ;
882
882
assert_eq ! ( bitmap. len( ) , 5000 ) ;
883
883
884
884
bitmap = RoaringBitmap :: new ( ) ;
885
885
bitmap. insert_range ( 0 ..200000 ) ;
886
- bitmap. remove_back ( 196000 ) ;
886
+ bitmap. remove_biggest ( 196000 ) ;
887
887
assert_eq ! ( bitmap. len( ) , 4000 ) ;
888
888
889
889
bitmap = RoaringBitmap :: new ( ) ;
890
890
bitmap. insert_range ( 0 ..200000 ) ;
891
- bitmap. remove_back ( 2000 ) ;
891
+ bitmap. remove_biggest ( 2000 ) ;
892
892
assert_eq ! ( bitmap. len( ) , 198000 ) ;
893
893
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( 0 ..198000 ) ) ;
894
894
895
895
bitmap = RoaringBitmap :: new ( ) ;
896
896
bitmap. insert_range ( 0 ..65535 ) ;
897
- bitmap. remove_back ( 0 ) ;
897
+ bitmap. remove_biggest ( 0 ) ;
898
898
assert_eq ! ( bitmap. len( ) , 65535 ) ;
899
899
}
900
900
901
901
#[ test]
902
- fn remove_back_for_vec ( ) {
902
+ fn remove_biggest_for_vec ( ) {
903
903
let mut bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ;
904
- bitmap. remove_back ( 2 ) ;
904
+ bitmap. remove_biggest ( 2 ) ;
905
905
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 1 , 2 , 3 , 7 ] ) ) ;
906
906
907
907
bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ;
908
- bitmap. remove_back ( 6 ) ;
908
+ bitmap. remove_biggest ( 6 ) ;
909
909
assert_eq ! ( bitmap. len( ) , 0 ) ;
910
910
911
911
bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ;
912
- bitmap. remove_back ( 0 ) ;
912
+ bitmap. remove_biggest ( 0 ) ;
913
913
assert_eq ! ( bitmap. len( ) , 6 ) ;
914
914
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 1 , 2 , 3 , 7 , 9 , 11 ] ) ) ;
915
915
916
916
bitmap = RoaringBitmap :: new ( ) ;
917
917
bitmap. insert_range ( 0 ..( 1_u32 << 16 ) + 5 ) ;
918
- bitmap. remove_back ( 65537 ) ;
918
+ bitmap. remove_biggest ( 65537 ) ;
919
919
assert_eq ! ( bitmap. len( ) , 4 ) ;
920
920
assert_eq ! ( bitmap, RoaringBitmap :: from_iter( [ 0 , 1 , 2 , 3 ] ) ) ;
921
921
922
922
let mut bitmap = RoaringBitmap :: from_iter ( [ 1 , 2 , 3 ] ) ;
923
- bitmap. remove_back ( 4 ) ;
923
+ bitmap. remove_biggest ( 4 ) ;
924
924
assert_eq ! ( bitmap, RoaringBitmap :: default ( ) ) ;
925
925
}
926
926
}
0 commit comments