bloom-filter-yss 0.3.2

Simple bloom filter for me or you
Documentation
use super::{BloomFilter, CompressMode};

pub struct BloomFilterBuilder {
    bloom_filter: BloomFilter,
}

impl BloomFilterBuilder {
    pub fn new(capacity: usize) -> Self {
        let mut bloom_filter = BloomFilter::new(capacity);
        bloom_filter.compress_mode = CompressMode::Lzw;

        Self { bloom_filter }
    }

    pub fn no_compress(mut self) -> Self {
        self.bloom_filter.compress_mode = CompressMode::None;
        self
    }

    pub fn build(self) -> BloomFilter {
        self.bloom_filter
    }

    pub fn load(path: &str) -> BloomFilter {
        BloomFilter::from_file(path)
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_default() {
        let bloom_filter = BloomFilterBuilder::new(100).build();
        assert_eq!(bloom_filter.compress_mode, CompressMode::Lzw);
    }

    #[test]
    fn test_no_compression() {
        let bloom_filter = BloomFilterBuilder::new(100).no_compress().build();
        assert_eq!(bloom_filter.compress_mode, CompressMode::None);
    }
}