[−][src]Struct roaring::bitmap::RoaringBitmap
A compressed bitmap using the Roaring bitmap compression scheme.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); // insert all primes less than 10 rb.insert(2); rb.insert(3); rb.insert(5); rb.insert(7); println!("total bits set to true: {}", rb.len());
Methods
impl RoaringBitmap
[src]
pub fn new() -> RoaringBitmap
[src]
Creates an empty RoaringBitmap
.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new();
pub fn insert(&mut self, value: u32) -> bool
[src]
Adds a value to the set. Returns true
if the value was not already present in the set.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); assert_eq!(rb.insert(3), true); assert_eq!(rb.insert(3), false); assert_eq!(rb.contains(3), true);
pub fn remove(&mut self, value: u32) -> bool
[src]
Removes a value from the set. Returns true
if the value was present in the set.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); rb.insert(3); assert_eq!(rb.remove(3), true); assert_eq!(rb.remove(3), false); assert_eq!(rb.contains(3), false);
pub fn remove_range(&mut self, range: Range<u64>) -> u64
[src]
Removes a range of values from the set specific as [start..end). Returns the number of removed values.
Note that due to the exclusive end this functions take indexes as u64 but you still can't index past 2**32 (u32::MAX + 1).
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); rb.insert(2); rb.insert(3); assert_eq!(rb.remove_range(2..4), 2);
pub fn contains(&self, value: u32) -> bool
[src]
Returns true
if this set contains the specified integer.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); rb.insert(1); assert_eq!(rb.contains(0), false); assert_eq!(rb.contains(1), true); assert_eq!(rb.contains(100), false);
pub fn clear(&mut self)
[src]
Clears all integers in this set.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); rb.insert(1); assert_eq!(rb.contains(1), true); rb.clear(); assert_eq!(rb.contains(1), false);
pub fn is_empty(&self) -> bool
[src]
Returns true
if there are no integers in this set.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); assert_eq!(rb.is_empty(), true); rb.insert(3); assert_eq!(rb.is_empty(), false);
pub fn len(&self) -> u64
[src]
Returns the number of distinct integers added to the set.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); assert_eq!(rb.len(), 0); rb.insert(3); assert_eq!(rb.len(), 1); rb.insert(3); rb.insert(4); assert_eq!(rb.len(), 2);
pub fn min(&self) -> Option<u32>
[src]
Returns the minimum value in the set (if the set is non-empty).
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); assert_eq!(rb.min(), None); rb.insert(3); rb.insert(4); assert_eq!(rb.min(), Some(3));
pub fn max(&self) -> Option<u32>
[src]
Returns the maximum value in the set (if the set is non-empty).
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); assert_eq!(rb.max(), None); rb.insert(3); rb.insert(4); assert_eq!(rb.max(), Some(4));
impl RoaringBitmap
[src]
ⓘImportant traits for Iter<'a>pub fn iter(&self) -> Iter
[src]
Iterator over each value stored in the RoaringBitmap, guarantees values are ordered by value.
Examples
use roaring::RoaringBitmap; use std::iter::FromIterator; let bitmap = RoaringBitmap::from_iter(1..3); let mut iter = bitmap.iter(); assert_eq!(iter.next(), Some(1)); assert_eq!(iter.next(), Some(2)); assert_eq!(iter.next(), None);
impl RoaringBitmap
[src]
pub fn union_with(&mut self, other: &RoaringBitmap)
[src]
Unions in-place with the specified other bitmap.
Examples
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (1..5).collect(); rb1.union_with(&rb2); assert_eq!(rb1, rb3);
Can also be done via the BitOr
operator.
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (1..5).collect(); let rb1 = rb1 | rb2; assert_eq!(rb1, rb3);
pub fn intersect_with(&mut self, other: &RoaringBitmap)
[src]
Intersects in-place with the specified other bitmap.
Examples
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (3..4).collect(); rb1.intersect_with(&rb2); assert_eq!(rb1, rb3);
Can also be done via the BitAnd
operator.
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (3..4).collect(); let rb1 = rb1 & rb2; assert_eq!(rb1, rb3);
pub fn difference_with(&mut self, other: &RoaringBitmap)
[src]
Removes all values in the specified other bitmap from self, in-place.
Examples
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (1..3).collect(); rb1.difference_with(&rb2); assert_eq!(rb1, rb3);
Can also be done via the Sub
operator.
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..5).collect(); let rb3: RoaringBitmap = (1..3).collect(); let rb1 = rb1 - rb2; assert_eq!(rb1, rb3);
pub fn symmetric_difference_with(&mut self, other: &RoaringBitmap)
[src]
Replaces this bitmap with one that is equivalent to self XOR other
.
Examples
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..6).collect(); let rb3: RoaringBitmap = (1..3).chain(4..6).collect(); rb1.symmetric_difference_with(&rb2); assert_eq!(rb1, rb3);
Can also be done via the BitXor
operator.
use roaring::RoaringBitmap; let mut rb1: RoaringBitmap = (1..4).collect(); let rb2: RoaringBitmap = (3..6).collect(); let rb3: RoaringBitmap = (1..3).chain(4..6).collect(); let rb1 = rb1 ^ rb2; assert_eq!(rb1, rb3);
impl RoaringBitmap
[src]
pub fn is_disjoint(&self, other: &Self) -> bool
[src]
Returns true if the set has no elements in common with other. This is equivalent to checking for an empty intersection.
Examples
use roaring::RoaringBitmap; let mut rb1 = RoaringBitmap::new(); let mut rb2 = RoaringBitmap::new(); rb1.insert(1); assert_eq!(rb1.is_disjoint(&rb2), true); rb2.insert(1); assert_eq!(rb1.is_disjoint(&rb2), false);
pub fn is_subset(&self, other: &Self) -> bool
[src]
Returns true
if this set is a subset of other
.
Examples
use roaring::RoaringBitmap; let mut rb1 = RoaringBitmap::new(); let mut rb2 = RoaringBitmap::new(); rb1.insert(1); assert_eq!(rb1.is_subset(&rb2), false); rb2.insert(1); assert_eq!(rb1.is_subset(&rb2), true); rb1.insert(2); assert_eq!(rb1.is_subset(&rb2), false);
pub fn is_superset(&self, other: &Self) -> bool
[src]
Returns true
if this set is a superset of other
.
Examples
use roaring::RoaringBitmap; let mut rb1 = RoaringBitmap::new(); let mut rb2 = RoaringBitmap::new(); rb1.insert(1); assert_eq!(rb2.is_superset(&rb1), false); rb2.insert(1); assert_eq!(rb2.is_superset(&rb1), true); rb1.insert(2); assert_eq!(rb2.is_superset(&rb1), false);
impl RoaringBitmap
[src]
pub fn serialized_size(&self) -> usize
[src]
Return the size in bytes of the serialized output. This is compatible with the official C/C++, Java and Go implementations.
Examples
use roaring::RoaringBitmap; let rb1: RoaringBitmap = (1..4).collect(); let mut bytes = Vec::with_capacity(rb1.serialized_size()); rb1.serialize_into(&mut bytes).unwrap(); let rb2 = RoaringBitmap::deserialize_from(&mut &bytes[..]).unwrap(); assert_eq!(rb1, rb2);
pub fn serialize_into<W: Write>(&self, writer: W) -> Result<()>
[src]
Serialize this bitmap into the standard Roaring on-disk format. This is compatible with the official C/C++, Java and Go implementations.
Examples
use roaring::RoaringBitmap; let rb1: RoaringBitmap = (1..4).collect(); let mut bytes = vec![]; rb1.serialize_into(&mut bytes).unwrap(); let rb2 = RoaringBitmap::deserialize_from(&mut &bytes[..]).unwrap(); assert_eq!(rb1, rb2);
pub fn deserialize_from<R: Read>(reader: R) -> Result<RoaringBitmap>
[src]
Deserialize a bitmap into memory from the standard Roaring on-disk format. This is compatible with the official C/C++, Java and Go implementations.
Examples
use roaring::RoaringBitmap; let rb1: RoaringBitmap = (1..4).collect(); let mut bytes = vec![]; rb1.serialize_into(&mut bytes).unwrap(); let rb2 = RoaringBitmap::deserialize_from(&mut &bytes[..]).unwrap(); assert_eq!(rb1, rb2);
Trait Implementations
impl Clone for RoaringBitmap
[src]
fn clone(&self) -> RoaringBitmap
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Default for RoaringBitmap
[src]
fn default() -> RoaringBitmap
[src]
impl PartialEq<RoaringBitmap> for RoaringBitmap
[src]
fn eq(&self, other: &RoaringBitmap) -> bool
[src]
fn ne(&self, other: &RoaringBitmap) -> bool
[src]
impl Extend<u32> for RoaringBitmap
[src]
fn extend<I: IntoIterator<Item = u32>>(&mut self, iterator: I)
[src]
impl<'a> IntoIterator for &'a RoaringBitmap
[src]
type Item = u32
The type of the elements being iterated over.
type IntoIter = Iter<'a>
Which kind of iterator are we turning this into?
ⓘImportant traits for Iter<'a>fn into_iter(self) -> Iter<'a>
[src]
impl IntoIterator for RoaringBitmap
[src]
type Item = u32
The type of the elements being iterated over.
type IntoIter = IntoIter
Which kind of iterator are we turning this into?
ⓘImportant traits for IntoIterfn into_iter(self) -> IntoIter
[src]
impl Debug for RoaringBitmap
[src]
impl Sub<RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the -
operator.
fn sub(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> Sub<&'a RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the -
operator.
fn sub(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> Sub<RoaringBitmap> for &'a RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the -
operator.
fn sub(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a, 'b> Sub<&'a RoaringBitmap> for &'b RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the -
operator.
fn sub(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl SubAssign<RoaringBitmap> for RoaringBitmap
[src]
fn sub_assign(&mut self, rhs: RoaringBitmap)
[src]
impl<'a> SubAssign<&'a RoaringBitmap> for RoaringBitmap
[src]
fn sub_assign(&mut self, rhs: &'a RoaringBitmap)
[src]
impl BitAnd<RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the &
operator.
fn bitand(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitAnd<&'a RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the &
operator.
fn bitand(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitAnd<RoaringBitmap> for &'a RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the &
operator.
fn bitand(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a, 'b> BitAnd<&'a RoaringBitmap> for &'b RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the &
operator.
fn bitand(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl BitOr<RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the |
operator.
fn bitor(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitOr<&'a RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the |
operator.
fn bitor(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitOr<RoaringBitmap> for &'a RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the |
operator.
fn bitor(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a, 'b> BitOr<&'a RoaringBitmap> for &'b RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the |
operator.
fn bitor(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl BitXor<RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitXor<&'a RoaringBitmap> for RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl<'a> BitXor<RoaringBitmap> for &'a RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: RoaringBitmap) -> RoaringBitmap
[src]
impl<'a, 'b> BitXor<&'a RoaringBitmap> for &'b RoaringBitmap
[src]
type Output = RoaringBitmap
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: &'a RoaringBitmap) -> RoaringBitmap
[src]
impl BitAndAssign<RoaringBitmap> for RoaringBitmap
[src]
fn bitand_assign(&mut self, rhs: RoaringBitmap)
[src]
impl<'a> BitAndAssign<&'a RoaringBitmap> for RoaringBitmap
[src]
fn bitand_assign(&mut self, rhs: &'a RoaringBitmap)
[src]
impl BitOrAssign<RoaringBitmap> for RoaringBitmap
[src]
fn bitor_assign(&mut self, rhs: RoaringBitmap)
[src]
impl<'a> BitOrAssign<&'a RoaringBitmap> for RoaringBitmap
[src]
fn bitor_assign(&mut self, rhs: &'a RoaringBitmap)
[src]
impl BitXorAssign<RoaringBitmap> for RoaringBitmap
[src]
fn bitxor_assign(&mut self, rhs: RoaringBitmap)
[src]
impl<'a> BitXorAssign<&'a RoaringBitmap> for RoaringBitmap
[src]
fn bitxor_assign(&mut self, rhs: &'a RoaringBitmap)
[src]
impl FromIterator<u32> for RoaringBitmap
[src]
fn from_iter<I: IntoIterator<Item = u32>>(iterator: I) -> RoaringBitmap
[src]
Auto Trait Implementations
impl Send for RoaringBitmap
impl Sync for RoaringBitmap
impl Unpin for RoaringBitmap
impl RefUnwindSafe for RoaringBitmap
impl UnwindSafe for RoaringBitmap
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,