Struct roaring::treemap::RoaringTreemap [] [src]

pub struct RoaringTreemap { /* fields omitted */ }

A compressed bitmap with u64 values. Implemented as a BTreeMap of RoaringBitmaps.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::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 RoaringTreemap
[src]

Creates an empty RoaringTreemap.

Examples

use roaring::RoaringTreemap;
let mut rb = RoaringTreemap::new();

Adds a value to the set. Returns true if the value was not already present in the set.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
assert_eq!(rb.insert(3), true);
assert_eq!(rb.insert(3), false);
assert_eq!(rb.contains(3), true);

Removes a value from the set. Returns true if the value was present in the set.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
rb.insert(3);
assert_eq!(rb.remove(3), true);
assert_eq!(rb.remove(3), false);
assert_eq!(rb.contains(3), false);

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 you can't remove the item at the last index (u64::MAX) using this function!

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
rb.insert(2);
rb.insert(3);
assert_eq!(rb.remove_range(2..4), 2);

Returns true if this set contains the specified integer.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
rb.insert(1);
assert_eq!(rb.contains(0), false);
assert_eq!(rb.contains(1), true);
assert_eq!(rb.contains(100), false);

Clears all integers in this set.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
rb.insert(1);
assert_eq!(rb.contains(1), true);
rb.clear();
assert_eq!(rb.contains(1), false);

Returns true if there are no integers in this set.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
assert_eq!(rb.is_empty(), true);

rb.insert(3);
assert_eq!(rb.is_empty(), false);

Returns the number of distinct integers added to the set.

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::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);

Returns the minimum value in the set (if the set is non-empty).

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
assert_eq!(rb.min(), None);

rb.insert(3);
rb.insert(4);
assert_eq!(rb.min(), Some(3));

Returns the maximum value in the set (if the set is non-empty).

Examples

use roaring::RoaringTreemap;

let mut rb = RoaringTreemap::new();
assert_eq!(rb.max(), None);

rb.insert(3);
rb.insert(4);
assert_eq!(rb.max(), Some(4));

impl RoaringTreemap
[src]

Iterator over each value stored in the RoaringTreemap, guarantees values are ordered by value.

Examples

use roaring::RoaringTreemap;
use std::iter::FromIterator;

let bitmap = RoaringTreemap::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);

Iterator over pairs of partition number and the corresponding RoaringBitmap. The partition number is defined by the 32 most significant bits of the bit index.

Examples

use roaring::{RoaringBitmap, RoaringTreemap};
use std::iter::FromIterator;

let original = RoaringTreemap::from_iter(0..6000);
let mut bitmaps = original.bitmaps();

assert_eq!(bitmaps.next(), Some((0, &RoaringBitmap::from_iter(0..6000))));
assert_eq!(bitmaps.next(), None);

Construct a RoaringTreemap from an iterator of partition number and RoaringBitmap pairs. The partition number is defined by the 32 most significant bits of the bit index. Note that repeated partitions, if present, will replace previously set partitions.

Examples

use roaring::RoaringTreemap;
use std::iter::FromIterator;

let original = RoaringTreemap::from_iter(0..6000);
let clone = RoaringTreemap::from_bitmaps(original.bitmaps().map(|(p, b)| (p, b.clone())));

assert_eq!(clone, original);

impl RoaringTreemap
[src]

Unions in-place with the specified other bitmap.

Examples

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (1..5).collect();

rb1.union_with(&rb2);

assert_eq!(rb1, rb3);

Can also be done via the BitOr operator.

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (1..5).collect();

let rb1 = rb1 | rb2;

assert_eq!(rb1, rb3);

Intersects in-place with the specified other bitmap.

Examples

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (3..4).collect();

rb1.intersect_with(&rb2);

assert_eq!(rb1, rb3);

Can also be done via the BitAnd operator.

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (3..4).collect();

let rb1 = rb1 & rb2;

assert_eq!(rb1, rb3);

Removes all values in the specified other bitmap from self, in-place.

Examples

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (1..3).collect();

rb1.difference_with(&rb2);

assert_eq!(rb1, rb3);

Can also be done via the Sub operator.

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..5).collect();
let rb3: RoaringTreemap = (1..3).collect();

let rb1 = rb1 - rb2;

assert_eq!(rb1, rb3);

Replaces this bitmap with one that is equivalent to self XOR other.

Examples

use roaring::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..6).collect();
let rb3: RoaringTreemap = (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::RoaringTreemap;

let mut rb1: RoaringTreemap = (1..4).collect();
let rb2: RoaringTreemap = (3..6).collect();
let rb3: RoaringTreemap = (1..3).chain(4..6).collect();

let rb1 = rb1 ^ rb2;

assert_eq!(rb1, rb3);

impl RoaringTreemap
[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::RoaringTreemap;

let mut rb1 = RoaringTreemap::new();
let mut rb2 = RoaringTreemap::new();

rb1.insert(1);

assert_eq!(rb1.is_disjoint(&rb2), true);

rb2.insert(1);

assert_eq!(rb1.is_disjoint(&rb2), false);

Returns true if this set is a subset of other.

Examples

use roaring::RoaringTreemap;

let mut rb1 = RoaringTreemap::new();
let mut rb2 = RoaringTreemap::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);

Returns true if this set is a superset of other.

Examples

use roaring::RoaringTreemap;

let mut rb1 = RoaringTreemap::new();
let mut rb2 = RoaringTreemap::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);

Trait Implementations

impl Debug for RoaringTreemap
[src]

Formats the value using the given formatter.

impl Default for RoaringTreemap
[src]

Returns the "default value" for a type. Read more

impl<'a> IntoIterator for &'a RoaringTreemap
[src]

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

impl IntoIterator for RoaringTreemap
[src]

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

impl FromIterator<u64> for RoaringTreemap
[src]

Creates a value from an iterator. Read more

impl Extend<u64> for RoaringTreemap
[src]

Extends a collection with the contents of an iterator. Read more

impl FromIterator<(u32, RoaringBitmap)> for RoaringTreemap
[src]

Creates a value from an iterator. Read more

impl BitOr<RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the | operator

The method for the | operator

impl<'a> BitOr<&'a RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the | operator

The method for the | operator

impl<'a> BitOr<RoaringTreemap> for &'a RoaringTreemap
[src]

The resulting type after applying the | operator

The method for the | operator

impl<'a, 'b> BitOr<&'a RoaringTreemap> for &'b RoaringTreemap
[src]

The resulting type after applying the | operator

The method for the | operator

impl BitOrAssign<RoaringTreemap> for RoaringTreemap
[src]

The method for the |= operator

impl<'a> BitOrAssign<&'a RoaringTreemap> for RoaringTreemap
[src]

The method for the |= operator

impl BitAnd<RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the & operator

The method for the & operator

impl<'a> BitAnd<&'a RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the & operator

The method for the & operator

impl<'a> BitAnd<RoaringTreemap> for &'a RoaringTreemap
[src]

The resulting type after applying the & operator

The method for the & operator

impl<'a, 'b> BitAnd<&'a RoaringTreemap> for &'b RoaringTreemap
[src]

The resulting type after applying the & operator

The method for the & operator

impl BitAndAssign<RoaringTreemap> for RoaringTreemap
[src]

The method for the &= operator

impl<'a> BitAndAssign<&'a RoaringTreemap> for RoaringTreemap
[src]

The method for the &= operator

impl Sub<RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> Sub<&'a RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> Sub<RoaringTreemap> for &'a RoaringTreemap
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a, 'b> Sub<&'a RoaringTreemap> for &'b RoaringTreemap
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubAssign<RoaringTreemap> for RoaringTreemap
[src]

The method for the -= operator

impl<'a> SubAssign<&'a RoaringTreemap> for RoaringTreemap
[src]

The method for the -= operator

impl BitXor<RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the ^ operator

The method for the ^ operator

impl<'a> BitXor<&'a RoaringTreemap> for RoaringTreemap
[src]

The resulting type after applying the ^ operator

The method for the ^ operator

impl<'a> BitXor<RoaringTreemap> for &'a RoaringTreemap
[src]

The resulting type after applying the ^ operator

The method for the ^ operator

impl<'a, 'b> BitXor<&'a RoaringTreemap> for &'b RoaringTreemap
[src]

The resulting type after applying the ^ operator

The method for the ^ operator

impl BitXorAssign<RoaringTreemap> for RoaringTreemap
[src]

The method for the ^= operator

impl<'a> BitXorAssign<&'a RoaringTreemap> for RoaringTreemap
[src]

The method for the ^= operator

impl PartialEq for RoaringTreemap
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Clone for RoaringTreemap
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more