[−][src]Struct croaring::treemap::Treemap
Fields
map: BTreeMap<u32, Bitmap>
Methods
impl Treemap
[src]
pub fn create() -> Self
[src]
pub fn add(&mut self, value: u64)
[src]
Examples
use std::u32; use croaring::Treemap; let mut treemap = Treemap::create(); treemap.add(3); assert!(treemap.contains(3)); treemap.add(u32::MAX as u64); assert!(treemap.contains(u32::MAX as u64)); treemap.add(u64::from(u32::MAX) + 1); assert!(treemap.contains(u64::from(u32::MAX)+ 1));
pub fn contains(&self, value: u64) -> bool
[src]
use croaring::Treemap; let mut treemap = Treemap::create();
pub fn is_empty(&self) -> bool
[src]
Returns true if the Treemap is empty.
Examples
use std::u64; use croaring::Treemap; let mut treemap = Treemap::create(); assert!(treemap.is_empty()); treemap.add(u64::MAX); assert!(!treemap.is_empty());
pub fn remove(&mut self, element: u64)
[src]
Remove element from the Treemap
Examples
use std::u64; use croaring::Treemap; let mut treemap = Treemap::create(); treemap.add(u64::MAX); treemap.remove(u64::MAX); assert!(treemap.is_empty());
pub fn cardinality(&self) -> u64
[src]
Returns the number of elements contained in the Treemap
Examples
use std::u64; use croaring::Treemap; let mut treemap = Treemap::create(); treemap.add(1); assert_eq!(treemap.cardinality(), 1); treemap.add(u64::MAX); assert_eq!(treemap.cardinality(), 2);
pub fn minimum(&self) -> u64
[src]
Returns the smallest value in the set. Returns std::u64::MAX if the set is empty.
Examples
use croaring::Treemap; let mut treemap: Treemap = Treemap::create(); let empty_treemap: Treemap = Treemap::create(); treemap.add(120); treemap.add(1000); assert_eq!(treemap.minimum(), 120); assert_eq!(empty_treemap.minimum(), std::u64::MAX);
pub fn maximum(&self) -> u64
[src]
Returns the greatest value in the set. Returns 0 if the set is empty.
Examples
use croaring::Treemap; let mut treemap: Treemap = Treemap::create(); let empty_treemap: Treemap = Treemap::create(); treemap.add(120); treemap.add(1000); assert_eq!(treemap.maximum(), 1000); assert_eq!(empty_treemap.maximum(), 0);
pub fn and(&self, other: &Self) -> Self
[src]
And computes the intersection between two treemaps and returns the result as a new treemap
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(2); let treemap3 = treemap1.and(&treemap2); assert!(treemap3.contains(u64::MAX)); assert!(!treemap3.contains(2));
pub fn and_inplace(&mut self, other: &Self)
[src]
Computes the intersection between two treemaps and stores the result in the current treemap
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(25); let mut treemap3 = Treemap::create(); treemap3.add(u64::MAX); let mut treemap4 = Treemap::create(); treemap4.add(u64::MAX); treemap4.add(25); treemap1.and_inplace(&treemap2); assert!(treemap1.cardinality() == 0); assert!(!treemap1.contains(u64::MAX)); assert!(!treemap1.contains(25)); treemap3.and_inplace(&treemap4); assert!(treemap3.cardinality() == 1); assert!(treemap3.contains(u64::MAX)); assert!(!treemap3.contains(25));
pub fn or(&self, other: &Self) -> Self
[src]
Or computes the union between two bitmaps and returns the result as a new bitmap
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(25); let treemap3 = treemap1.or(&treemap2); assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(u64::MAX)); assert!(treemap3.contains(25));
pub fn or_inplace(&mut self, other: &Self)
[src]
Computes the intersection between two bitmaps and stores the result in the current bitmap
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); let mut treemap3 = Treemap::create(); treemap3.add(15); let mut bitmap4 = Treemap::create(); bitmap4.add(15); bitmap4.add(25); treemap1.and_inplace(&treemap2); assert!(treemap1.cardinality() == 0); assert!(!treemap1.contains(15)); assert!(!treemap1.contains(25)); treemap3.and_inplace(&bitmap4); assert!(treemap3.cardinality() == 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(25));
pub fn xor(&self, other: &Self) -> Self
[src]
Computes the symmetric difference (xor) between two treemaps and returns a new treemap.
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = treemap1.xor(&treemap2); assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(!treemap3.contains(25)); assert!(treemap3.contains(35));
pub fn xor_inplace(&mut self, other: &Self)
[src]
Inplace version of xor, stores result in the current treemap.
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(25); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap2.add(35); treemap1.xor_inplace(&treemap2); assert!(treemap1.cardinality() == 2); assert!(treemap1.contains(15)); assert!(!treemap1.contains(u64::MAX)); assert!(treemap1.contains(35));
pub fn andnot(&self, other: &Self) -> Self
[src]
Computes the difference between two bitmaps and returns the result.
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = treemap1.andnot(&treemap2); assert_eq!(treemap3.cardinality(), 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(!treemap3.contains(35));
pub fn andnot_inplace(&mut self, other: &Self)
[src]
Computes the difference between two treemaps and stores the result in the current treemap.
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(25); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap2.add(35); treemap1.andnot_inplace(&treemap2); assert_eq!(treemap1.cardinality(), 1); assert!(treemap1.contains(15)); assert!(!treemap1.contains(u64::MAX)); assert!(!treemap1.contains(35));
pub fn to_vec(&self) -> Vec<u64>
[src]
Returns a vector containing all of the integers stored in the Treemap in a sorted order.
use std::u64; use croaring::Treemap; let mut treemap = Treemap::create(); treemap.add(25); treemap.add(15); treemap.add(u64::MAX); assert_eq!(treemap.to_vec(), [15, 25, u64::MAX]);
pub fn of(elements: &[u64]) -> Self
[src]
Creates a new treemap from a slice of u64 integers
Examples
use std::u64; use croaring::Treemap; let elements = vec![1, 2, u64::MAX]; let treemap = Treemap::of(&elements); let mut treemap2 = Treemap::create(); for element in &elements { treemap2.add(*element); } assert!(treemap.contains(1)); assert!(treemap.contains(2)); assert!(treemap.contains(u64::MAX)); assert!(!treemap.contains(3)); assert_eq!(treemap, treemap2);
pub fn run_optimize(&mut self) -> bool
[src]
Compresses treemap's bitmaps. Returns true if any of the bitmaps were modified.
Examples
use croaring::Treemap; let mut treemap: Treemap = (100..1000).collect(); assert_eq!(treemap.cardinality(), 900); assert!(treemap.run_optimize());
pub fn remove_run_compression(&mut self) -> bool
[src]
Removes run-length encoding from treemap's bitmaps. Returns true if change was made to any of the bitmaps.
Examples
use croaring::Treemap; let mut treemap: Treemap = (100..1000).collect(); assert_eq!(treemap.cardinality(), 900); assert!(treemap.run_optimize()); assert!(treemap.remove_run_compression());
impl Treemap
[src]
pub fn iter(&self) -> TreemapIterator
[src]
Returns an iterator over each value stored in the bitmap. Returned values are ordered in ascending order.
Examples
use std::u64; use croaring::Treemap; let mut treemap = Treemap::create(); treemap.add(4); treemap.add(3); treemap.add(2); treemap.add(2); treemap.add(u64::MAX); let mut iterator = treemap.iter(); assert_eq!(iterator.next(), Some(2)); assert_eq!(iterator.next(), Some(3)); assert_eq!(iterator.next(), Some(4)); assert_eq!(iterator.next(), Some(u64::MAX)); assert_eq!(iterator.next(), None);
Trait Implementations
impl NativeSerializer for Treemap
[src]
type Item = Treemap
fn serialize(&self) -> Result<Vec<u8>>
[src]
fn deserialize(buffer: &[u8]) -> Result<Self>
[src]
fn get_serialized_size_in_bytes(&self) -> usize
[src]
How many bytes are required to serialize this bitmap with NativeSerializer
Examples
use croaring::Treemap; use croaring::treemap::NativeSerializer; let mut treemap = Treemap::create(); for i in 100..1000 { treemap.add(i); } treemap.add(std::u32::MAX as u64); treemap.add(std::u64::MAX); assert_eq!(treemap.get_serialized_size_in_bytes(), 1860);
impl JvmSerializer for Treemap
[src]
type Item = Treemap
fn serialize(&self) -> Result<Vec<u8>>
[src]
fn deserialize(buffer: &[u8]) -> Result<Self::Item>
[src]
fn get_serialized_size_in_bytes(&self) -> usize
[src]
How many bytes are required to serialize this bitmap with JvmSerializer
Examples
use croaring::Treemap; use croaring::treemap::JvmSerializer; let mut treemap = Treemap::create(); for i in 100..1000 { treemap.add(i); } treemap.add(std::u32::MAX as u64); treemap.add(std::u64::MAX); assert_eq!(treemap.get_serialized_size_in_bytes(), 1857);
impl PartialEq<Treemap> for Treemap
[src]
impl Clone for Treemap
[src]
fn clone(&self) -> Treemap
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for Treemap
[src]
impl Sub<Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the -
operator.
fn sub(self, other: Treemap) -> Treemap
[src]
Syntatic sugar for .andnot
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = treemap1 - treemap2; assert_eq!(treemap3.cardinality(), 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(!treemap3.contains(35));
impl<'a> Sub<&'a Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the -
operator.
fn sub(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .andnot
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap2.add(u64::MAX); let treemap3 = treemap1 - &treemap2; assert_eq!(treemap3.cardinality(), 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(!treemap3.contains(35));
impl<'a, 'b> Sub<&'a Treemap> for &'b Treemap
[src]
type Output = Treemap
The resulting type after applying the -
operator.
fn sub(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .andnot
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap1.add(u64::MAX); let treemap3 = &treemap1 - &treemap2; assert_eq!(treemap3.cardinality(), 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(!treemap3.contains(35));
impl SubAssign<Treemap> for Treemap
[src]
fn sub_assign(&mut self, other: Treemap)
[src]
Syntatic sugar for .andnot_inplace
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap2.add(u64::MAX); treemap1.andnot_inplace(&treemap2); assert_eq!(treemap1.cardinality(), 1); assert!(treemap1.contains(15)); assert!(!treemap1.contains(u64::MAX)); assert!(!treemap1.contains(35));
impl BitAnd<Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the &
operator.
fn bitand(self, other: Treemap) -> Treemap
[src]
Syntactic sugar for .and
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(1); treemap2.add(u64::MAX); let treemap3 = treemap1 & treemap2; assert!(treemap3.contains(u64::MAX)); assert!(!treemap3.contains(1));
impl<'a> BitAnd<&'a Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the &
operator.
fn bitand(self, other: &'a Treemap) -> Treemap
[src]
Syntactic sugar for .and
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(1); let mut treemap2 = Treemap::create(); treemap2.add(1); treemap2.add(2); let treemap3 = treemap1 & &treemap2; assert!(treemap3.contains(1)); assert!(!treemap3.contains(2));
impl<'a, 'b> BitAnd<&'a Treemap> for &'b Treemap
[src]
type Output = Treemap
The resulting type after applying the &
operator.
fn bitand(self, other: &'a Treemap) -> Treemap
[src]
Syntactic sugar for .and
Examples
use croaring::Treemap; let mut treemap1: Treemap = Treemap::create(); treemap1.add(1); let mut treemap2 = Treemap::create(); treemap2.add(1); treemap2.add(2); let treemap3 = &treemap1 & &treemap2; assert!(treemap3.contains(1)); assert!(!treemap3.contains(2));
impl BitOr<Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the |
operator.
fn bitor(self, other: Treemap) -> Treemap
[src]
Syntatic sugar for .or
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); let treemap3 = treemap1 | treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(treemap3.contains(25));
impl<'a> BitOr<&'a Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the |
operator.
fn bitor(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .or
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); let treemap3 = treemap1 | &treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(treemap3.contains(25));
impl<'a, 'b> BitOr<&'a Treemap> for &'b Treemap
[src]
type Output = Treemap
The resulting type after applying the |
operator.
fn bitor(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .or
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); let treemap3 = &treemap1 | &treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(treemap3.contains(25));
impl BitXor<Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the ^
operator.
fn bitxor(self, other: Treemap) -> Treemap
[src]
Syntatic sugar for .xor
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = treemap1 ^ treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(treemap3.contains(35));
impl<'a> BitXor<&'a Treemap> for Treemap
[src]
type Output = Treemap
The resulting type after applying the ^
operator.
fn bitxor(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .xor
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = treemap1 ^ &treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(treemap3.contains(35));
impl<'a, 'b> BitXor<&'a Treemap> for &'b Treemap
[src]
type Output = Treemap
The resulting type after applying the ^
operator.
fn bitxor(self, other: &'a Treemap) -> Treemap
[src]
Syntatic sugar for .xor
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); let treemap3 = &treemap1 ^ &treemap2; assert!(treemap3.cardinality() == 2); assert!(treemap3.contains(15)); assert!(!treemap3.contains(u64::MAX)); assert!(treemap3.contains(35));
impl BitAndAssign<Treemap> for Treemap
[src]
fn bitand_assign(&mut self, other: Treemap)
[src]
Syntactic sugar for .and_inplace
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); let mut treemap3 = Treemap::create(); treemap3.add(15); let mut treemap4 = Treemap::create(); treemap4.add(15); treemap4.add(25); treemap1 &= treemap2; assert!(treemap1.cardinality() == 0); assert!(!treemap1.contains(15)); assert!(!treemap1.contains(25)); treemap3 &= treemap4; assert!(treemap3.cardinality() == 1); assert!(treemap3.contains(15)); assert!(!treemap3.contains(25));
impl BitOrAssign<Treemap> for Treemap
[src]
fn bitor_assign(&mut self, other: Treemap)
[src]
Syntatic sugar for .or_inplace
Examples
use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); let mut treemap2 = Treemap::create(); treemap2.add(25); treemap1 |= treemap2; assert!(treemap1.cardinality() == 2); assert!(treemap1.contains(15)); assert!(treemap1.contains(25));
impl BitXorAssign<Treemap> for Treemap
[src]
fn bitxor_assign(&mut self, other: Treemap)
[src]
Syntatic sugar for .xor_inplace
Examples
use std::u64; use croaring::Treemap; let mut treemap1 = Treemap::create(); treemap1.add(15); treemap1.add(u64::MAX); let mut treemap2 = Treemap::create(); treemap2.add(u64::MAX); treemap2.add(35); treemap1 ^= treemap2; assert!(treemap1.cardinality() == 2); assert!(treemap1.contains(15)); assert!(!treemap1.contains(u64::MAX)); assert!(treemap1.contains(35));
impl FromIterator<u64> for Treemap
[src]
fn from_iter<I: IntoIterator<Item = u64>>(iter: I) -> Self
[src]
Convenience method for creating treemap from an iterator.
Examples
use std::{u32, u64}; use croaring::Treemap; let treemap: Treemap = (1..3).chain(u64::from(u32::MAX)+1..u64::from(u32::MAX)+10).collect(); assert!(!treemap.is_empty()); assert!(treemap.contains(1)); assert!(treemap.contains(2)); assert!(treemap.contains(u64::from(u32::MAX)+1)); assert!(treemap.contains(u64::from(u32::MAX)+5)); assert_eq!(treemap.cardinality(), 11);
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
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, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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,