roaring_bitmap 0.1.2

Roaring bitmap data structure implemented in Rust
Documentation
use std::collections::BTreeMap;
use crate::roaring_set::RoaringSet;
pub struct RoaringBitMap64{
    tree_map:    BTreeMap<u64, RoaringSet>,
    num:        usize,
}
impl  RoaringBitMap64 {

    pub fn new() -> RoaringBitMap64{
        return RoaringBitMap64 {
            tree_map: BTreeMap::new(),
            num: 0,
        };
    }

    pub fn add(& mut self, value: u64){
        let slot_index = self.get_slot_index(value);
        let store_val = self.get_store_val(value);
        if ! self.tree_map.contains_key(&slot_index){
            self.tree_map.insert(slot_index, RoaringSet::new());
        }
        let roaring_set =  self.tree_map.get_mut(&slot_index).unwrap();
        let old_len = roaring_set.len();
        roaring_set.add(store_val);
        if roaring_set.len() > old_len{
            self.num = self.num + 1;
        }
    }

    pub fn remove(& mut self, value: u64){
        let slot_index = self.get_slot_index(value);
        let store_val = self.get_store_val(value);
        if self.tree_map.contains_key(&slot_index) {
            let mut roaring_set = self.tree_map.get_mut(&slot_index).unwrap();
            let old_len = roaring_set.len();
            roaring_set.remove(store_val);
            if roaring_set.len() < old_len{
                self.num = self.num - 1;
            }
        }
    }

    fn get_slot_index(&self, value: u64) -> u64{
        return value>>16;
    }

    fn get_store_val(&self, value: u64) -> u16{
        return (value & 0xFFFF) as u16;
    }

    pub fn values(&self) -> Vec<u64>{
        let mut vec:Vec<u64> = Vec::new();
        for (store_val, roaring_set) in self.tree_map.iter(){
            let set_values = roaring_set.values();
            let prefix_val =  (store_val << 16) as u64;
            for store_val in set_values{
                vec.push(prefix_val | (store_val as u64));
            }
        }
        return  vec;
    }

    pub fn len(&self) -> usize{
        return  self.num;
    }

}