ic-stable-memory 0.4.4

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

    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_hash_set = HashSet::new();

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

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

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

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

            let mut stable_hash_set = SHashSet::new();

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

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

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