Struct roaring::RoaringBitmap
[-]
[+]
[src]
pub struct RoaringBitmap { // some fields omitted }
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
fn new() -> RoaringBitmap
Creates an empty RoaringBitmap
.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new();
fn insert(&mut self, value: u32) -> bool
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);
fn remove(&mut self, value: u32) -> bool
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);
fn contains(&self, value: u32) -> bool
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);
fn clear(&mut self)
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);
fn is_empty(&self) -> bool
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);
fn len(&self) -> uint
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);
fn iter<'a>(&'a self) -> RoaringIterator<'a>
Iterator over each u32 stored in the RoaringBitmap.
Examples
use roaring::RoaringBitmap; let mut rb = RoaringBitmap::new(); rb.insert(1); rb.insert(4); rb.insert(6); // Print 1, 4, 6 in arbitrary order for x in rb.iter() { println!("{}", x); }
fn is_disjoint(&self, other: &RoaringBitmap) -> bool
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);
fn is_subset(&self, other: &RoaringBitmap) -> bool
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);