Fields
map: BTreeMap<u32, Bitmap>
Implementations
sourceimpl Treemap
impl Treemap
sourcepub fn add(&mut self, value: u64)
pub fn add(&mut self, value: u64)
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));
sourcepub fn contains(&self, value: u64) -> bool
pub fn contains(&self, value: u64) -> bool
use croaring::Treemap;
let mut treemap = Treemap::create();
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
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());
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Empties the Treemap
Examples
use std::u64;
use croaring::Treemap;
let mut treemap = Treemap::create();
treemap.add(1);
treemap.add(u64::MAX);
assert!(!treemap.is_empty());
treemap.clear();
assert!(treemap.is_empty());
sourcepub fn remove(&mut self, element: u64)
pub fn remove(&mut self, element: u64)
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());
sourcepub fn cardinality(&self) -> u64
pub fn cardinality(&self) -> u64
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);
sourcepub fn minimum(&self) -> Option<u64>
pub fn minimum(&self) -> Option<u64>
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(), Some(120));
assert_eq!(empty_treemap.minimum(), None);
sourcepub fn maximum(&self) -> Option<u64>
pub fn maximum(&self) -> Option<u64>
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(), Some(1000));
assert_eq!(empty_treemap.maximum(), None);
sourcepub fn and(&self, other: &Self) -> Self
pub fn and(&self, other: &Self) -> Self
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));
sourcepub fn and_inplace(&mut self, other: &Self)
pub fn and_inplace(&mut self, other: &Self)
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_eq!(treemap1.cardinality(), 0);
assert!(!treemap1.contains(u64::MAX));
assert!(!treemap1.contains(25));
treemap3.and_inplace(&treemap4);
assert_eq!(treemap3.cardinality(), 1);
assert!(treemap3.contains(u64::MAX));
assert!(!treemap3.contains(25));
let mut treemap5 = Treemap::create();
treemap5.add(u64::MAX);
treemap5.and_inplace(&Treemap::create());
assert_eq!(treemap5.cardinality(), 0);
sourcepub fn or(&self, other: &Self) -> Self
pub fn or(&self, other: &Self) -> Self
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));
sourcepub fn or_inplace(&mut self, other: &Self)
pub fn or_inplace(&mut self, other: &Self)
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_eq!(treemap1.cardinality(), 0);
assert!(!treemap1.contains(15));
assert!(!treemap1.contains(25));
treemap3.and_inplace(&bitmap4);
assert_eq!(treemap3.cardinality(), 1);
assert!(treemap3.contains(15));
assert!(!treemap3.contains(25));
sourcepub fn xor(&self, other: &Self) -> Self
pub fn xor(&self, other: &Self) -> Self
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_eq!(treemap3.cardinality(), 2);
assert!(treemap3.contains(15));
assert!(!treemap3.contains(25));
assert!(treemap3.contains(35));
sourcepub fn xor_inplace(&mut self, other: &Self)
pub fn xor_inplace(&mut self, other: &Self)
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_eq!(treemap1.cardinality(), 2);
assert!(treemap1.contains(15));
assert!(treemap1.contains(35));
let mut treemap3 = Treemap::create();
treemap3.add(15);
treemap3.xor_inplace(&Treemap::create());
assert_eq!(treemap3.cardinality(), 1);
assert!(treemap3.contains(15));
sourcepub fn andnot(&self, other: &Self) -> Self
pub fn andnot(&self, other: &Self) -> Self
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));
sourcepub fn andnot_inplace(&mut self, other: &Self)
pub fn andnot_inplace(&mut self, other: &Self)
Computes the difference between two treemaps and stores the result in the current treemap.
Examples
use std::u32;
use std::u64;
use croaring::Treemap;
let mut treemap1 = Treemap::create();
treemap1.add(15);
treemap1.add(25);
treemap1.add(u64::MAX - 10);
let mut treemap2 = Treemap::create();
treemap2.add(25);
treemap2.add(35);
treemap1.andnot_inplace(&treemap2);
assert_eq!(treemap1.cardinality(), 2);
assert!(treemap1.contains(15));
assert!(treemap1.contains(u64::MAX - 10));
assert!(!treemap1.contains(u64::MAX));
assert!(!treemap1.contains(35));
let mut treemap3 = Treemap::create();
treemap3.add(15);
let treemap4 = Treemap::create();
treemap3.andnot_inplace(&treemap4);
assert_eq!(treemap3.cardinality(), 1);
assert!(treemap3.contains(15));
sourcepub fn to_vec(&self) -> Vec<u64>
pub fn to_vec(&self) -> Vec<u64>
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]);
sourcepub fn of(elements: &[u64]) -> Self
pub fn of(elements: &[u64]) -> Self
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);
sourcepub fn run_optimize(&mut self) -> bool
pub fn run_optimize(&mut self) -> bool
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());
sourcepub fn remove_run_compression(&mut self) -> bool
pub fn remove_run_compression(&mut self) -> bool
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());
sourceimpl Treemap
impl Treemap
sourcepub fn iter(&self) -> TreemapIterator<'_>
pub fn iter(&self) -> TreemapIterator<'_>
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
sourceimpl<'a> BitAnd<&'a Treemap> for Treemap
impl<'a> BitAnd<&'a Treemap> for Treemap
sourcefn bitand(self, other: &'a Treemap) -> Treemap
fn bitand(self, other: &'a Treemap) -> Treemap
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));
sourceimpl<'a, 'b> BitAnd<&'a Treemap> for &'b Treemap
impl<'a, 'b> BitAnd<&'a Treemap> for &'b Treemap
sourcefn bitand(self, other: &'a Treemap) -> Treemap
fn bitand(self, other: &'a Treemap) -> Treemap
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));
sourceimpl BitAnd<Treemap> for Treemap
impl BitAnd<Treemap> for Treemap
sourcefn bitand(self, other: Treemap) -> Treemap
fn bitand(self, other: Treemap) -> Treemap
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));
sourceimpl BitAndAssign<Treemap> for Treemap
impl BitAndAssign<Treemap> for Treemap
sourcefn bitand_assign(&mut self, other: Treemap)
fn bitand_assign(&mut self, other: Treemap)
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));
sourceimpl<'a> BitOr<&'a Treemap> for Treemap
impl<'a> BitOr<&'a Treemap> for Treemap
sourcefn bitor(self, other: &'a Treemap) -> Treemap
fn bitor(self, other: &'a Treemap) -> Treemap
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));
sourceimpl<'a, 'b> BitOr<&'a Treemap> for &'b Treemap
impl<'a, 'b> BitOr<&'a Treemap> for &'b Treemap
sourcefn bitor(self, other: &'a Treemap) -> Treemap
fn bitor(self, other: &'a Treemap) -> Treemap
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));
sourceimpl BitOr<Treemap> for Treemap
impl BitOr<Treemap> for Treemap
sourcefn bitor(self, other: Treemap) -> Treemap
fn bitor(self, other: Treemap) -> Treemap
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));
sourceimpl BitOrAssign<Treemap> for Treemap
impl BitOrAssign<Treemap> for Treemap
sourcefn bitor_assign(&mut self, other: Treemap)
fn bitor_assign(&mut self, other: Treemap)
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));
sourceimpl<'a> BitXor<&'a Treemap> for Treemap
impl<'a> BitXor<&'a Treemap> for Treemap
sourcefn bitxor(self, other: &'a Treemap) -> Treemap
fn bitxor(self, other: &'a Treemap) -> Treemap
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));
sourceimpl<'a, 'b> BitXor<&'a Treemap> for &'b Treemap
impl<'a, 'b> BitXor<&'a Treemap> for &'b Treemap
sourcefn bitxor(self, other: &'a Treemap) -> Treemap
fn bitxor(self, other: &'a Treemap) -> Treemap
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));
sourceimpl BitXor<Treemap> for Treemap
impl BitXor<Treemap> for Treemap
sourcefn bitxor(self, other: Treemap) -> Treemap
fn bitxor(self, other: Treemap) -> Treemap
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));
sourceimpl BitXorAssign<Treemap> for Treemap
impl BitXorAssign<Treemap> for Treemap
sourcefn bitxor_assign(&mut self, other: Treemap)
fn bitxor_assign(&mut self, other: Treemap)
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));
sourceimpl Extend<u64> for Treemap
impl Extend<u64> for Treemap
sourcefn extend<T: IntoIterator<Item = u64>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = u64>>(&mut self, iter: T)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Extends a collection with exactly one element.
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
sourceimpl FromIterator<u64> for Treemap
impl FromIterator<u64> for Treemap
sourcefn from_iter<I: IntoIterator<Item = u64>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = u64>>(iter: I) -> Self
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);
sourceimpl JvmSerializer for Treemap
impl JvmSerializer for Treemap
sourcefn get_serialized_size_in_bytes(&self) -> usize
fn get_serialized_size_in_bytes(&self) -> usize
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);
type Item = Treemap
fn serialize(&self) -> Result<Vec<u8>>
fn deserialize(buffer: &[u8]) -> Result<Self::Item>
sourceimpl NativeSerializer for Treemap
impl NativeSerializer for Treemap
sourcefn get_serialized_size_in_bytes(&self) -> usize
fn get_serialized_size_in_bytes(&self) -> usize
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);
type Item = Treemap
fn serialize(&self) -> Result<Vec<u8>>
fn deserialize(buffer: &[u8]) -> Result<Self>
sourceimpl<'a> Sub<&'a Treemap> for Treemap
impl<'a> Sub<&'a Treemap> for Treemap
sourcefn sub(self, other: &'a Treemap) -> Treemap
fn sub(self, other: &'a Treemap) -> Treemap
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));
sourceimpl<'a, 'b> Sub<&'a Treemap> for &'b Treemap
impl<'a, 'b> Sub<&'a Treemap> for &'b Treemap
sourcefn sub(self, other: &'a Treemap) -> Treemap
fn sub(self, other: &'a Treemap) -> Treemap
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));
sourceimpl Sub<Treemap> for Treemap
impl Sub<Treemap> for Treemap
sourcefn sub(self, other: Treemap) -> Treemap
fn sub(self, other: Treemap) -> Treemap
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));
sourceimpl SubAssign<Treemap> for Treemap
impl SubAssign<Treemap> for Treemap
sourcefn sub_assign(&mut self, other: Treemap)
fn sub_assign(&mut self, other: Treemap)
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 StructuralPartialEq for Treemap
Auto Trait Implementations
impl RefUnwindSafe for Treemap
impl Send for Treemap
impl Sync for Treemap
impl Unpin for Treemap
impl UnwindSafe for Treemap
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more