1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Treemap is a RoaringBitmap-based structure that supports 64bit unsigned
//! integer values. Implemented as a BTreeMap.
//!
//! Java version can be found at https://github.com/RoaringBitmap/RoaringBitmap/blob/master/roaringbitmap/src/main/java/org/roaringbitmap/longlong/Roaring64NavigableMap.java
//! C++ version - https://github.com/RoaringBitmap/CRoaring/blob/master/cpp/roaring64map.hh
//!
//! # Example
//!
//! ```rust
//! 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));
//! assert_eq!(treemap.cardinality(), 3);
//! ```
use std::collections::BTreeMap;
use Bitmap;
use BitmapIterator;

mod imp;
mod iter;
mod serialization;
mod ops;
mod util;

#[derive(Debug, Clone, PartialEq)]
pub struct Treemap {
    pub map: BTreeMap<u32, Bitmap>,
}

pub use treemap::serialization::{NativeSerializer, JvmSerializer};