bloom_filter_simple 0.1.0

A simple and generic bloom filter implementation.
Documentation
use bloom_filter_simple::{BloomFilter, DefaultBloomFilter, SeededBloomFilter};
use std::time::Instant;

#[test]
#[ignore]
fn measure_inserting_km() {
    let mut element_count = 2;
    for _ in 0..23 {
        inserting_km(element_count);
        element_count *= 2;
    }
}

fn inserting_km(element_count: usize) {
    let mut bloom_filter = DefaultBloomFilter::new(element_count, 0.001);
    let start = Instant::now();
    for i in 0..element_count {
        bloom_filter.insert(&i);
    }
    println!(
        "Inserting {} elements into KMBloomFilter took {:?}, or {:?} per element",
        element_count,
        start.elapsed(),
        start.elapsed() / element_count as u32
    );
}

#[test]
#[ignore]
fn measure_inserting_seeded() {
    let mut element_count = 2;
    for _ in 0..23 {
        inserting_seeded(element_count);
        element_count *= 2;
    }
}

fn inserting_seeded(element_count: usize) {
    let mut bloom_filter = SeededBloomFilter::new(element_count, 0.001);
    let start = Instant::now();
    for i in 0..element_count {
        bloom_filter.insert(&i);
    }
    println!(
        "Inserting {} elements into SeededBloomFilter took {:?}, or {:?} per element",
        element_count,
        start.elapsed(),
        start.elapsed() / element_count as u32
    );
}

#[test]
#[ignore]
fn measure_checking_km() {
    let mut element_count = 2;
    for _ in 0..23 {
        checking_km(element_count);
        element_count *= 2;
    }
}

fn checking_km(element_count: usize) {
    let mut bloom_filter = DefaultBloomFilter::new(element_count, 0.001);
    for i in 0..element_count {
        bloom_filter.insert(&i);
    }
    let start = Instant::now();
    for i in 0..element_count {
        bloom_filter.contains(&i);
    }
    println!(
        "Checking {} elements in KMBloomFilter took {:?}, or {:?} per element",
        element_count,
        start.elapsed(),
        start.elapsed() / element_count as u32
    );
}

#[test]
#[ignore]
fn measure_checking_seeded() {
    let mut element_count = 2;
    for _ in 0..23 {
        checking_seeded(element_count);
        element_count *= 2;
    }
}

fn checking_seeded(element_count: usize) {
    let mut bloom_filter = SeededBloomFilter::new(element_count, 0.001);
    for i in 0..element_count {
        bloom_filter.insert(&i);
    }
    let start = Instant::now();
    for i in 0..element_count {
        bloom_filter.contains(&i);
    }
    println!(
        "Checking {} elements in SeededBloomFilter took {:?}, or {:?} per element",
        element_count,
        start.elapsed(),
        start.elapsed() / element_count as u32
    );
}