ic-stable-memory 0.4.4

Internet Computer's stable memory collections and tools
Documentation
#[cfg(test)]
mod btree_set_benchmark {
    use crate::collections::btree_set::SBTreeSet;
    use crate::{measure, stable, stable_memory_init};
    use rand::seq::SliceRandom;
    use rand::thread_rng;
    use std::collections::BTreeSet;

    const ITERATIONS: usize = 1_000_000;

    #[test]
    #[ignore]
    fn body() {
        let mut example = Vec::new();
        for i in 0..ITERATIONS {
            example.push(i);
        }
        example.shuffle(&mut thread_rng());

        {
            let mut classic_btree_set = BTreeSet::new();

            measure!("Classic btree set insert", ITERATIONS, {
                for i in 0..ITERATIONS {
                    classic_btree_set.insert(example[i]);
                }
            });

            measure!("Classic btree set search", ITERATIONS, {
                for i in 0..ITERATIONS {
                    classic_btree_set.contains(&example[i]);
                }
            });

            measure!("Classic btree set remove", ITERATIONS, {
                for i in 0..ITERATIONS {
                    classic_btree_set.remove(&example[i]);
                }
            });
        }

        {
            stable::clear();
            stable_memory_init();

            let mut stable_btree_map = SBTreeSet::new();

            measure!("Stable btree set insert", ITERATIONS, {
                for i in 0..ITERATIONS {
                    stable_btree_map.insert(example[i]);
                }
            });

            measure!("Stable btree set search", ITERATIONS, {
                for i in 0..ITERATIONS {
                    stable_btree_map.contains(&example[i]);
                }
            });

            measure!("Stable btree set remove", ITERATIONS, {
                for i in 0..ITERATIONS {
                    stable_btree_map.remove(&example[i]);
                }
            });
        }
    }
}