1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2016年11月30日 |
---|
#71 在 #cat
66 每月下载量
10KB
249 行
seabloom
又一个 Bloom 过滤器,这次使用了 seahash。
用法
extern crate seabloom;
let mut filter = Seabloom::create(2000);
assert_eq!(filter.has("cat"), false);
filter.add("cat");
assert_eq!(filter.has("cat"), true);
filter.add_list(vec!["cat", "jaguar", "lion", "tiger", "leopard"]);
assert_eq!(filter.has("caracal"), false);
assert_eq!(filter.has("jaguar"), true);
filter.clear();
assert_eq!(filter.has("cat"), false);
API
Seabloom::create(item_count: u32) ->Seabloom
为给定的项目计数创建一个大小合适的 Bloom 过滤器,错误率为 0.5%(0.005)。哈希函数的种子将为您随机生成。
Seabloom::create_optimal(item_count: u32,error_rate: f32) ->Seabloom
为给定的项目计数创建一个大小合适的 Bloom 过滤器,具有指定的错误率。哈希函数的种子将为您随机生成。
Seabloom::create_random_seeds(bitcount: u64,hashcount: u32) ->Seabloom
创建一个具有给定存储位数的 Bloom 过滤器,以及给定数量的哈希函数。哈希函数的种子将为您随机生成。您可能不想使用此函数;请改用 create
。
Seabloom::new(bitcount: u64,seeds: Vec<u64>) ->Seabloom
使用您提供的种子创建一个具有给定存储位和哈希函数的 Bloom 过滤器。对于 seahash 的当前 API,您需要哈希函数数量的 4 倍种子。
filter.clear()
清除过滤器。
filter.add(item: &str)
将字符串添加到过滤器中。
filter.add_bytes(bytes: &[u8])
将表示为给定字节的项添加到过滤器中。
filter.add_list(items: Vec<&str>)
将字符串列表添加到过滤器中。
filter.has(item: &str) -> bool
检查给定的字符串是否在过滤器中。提供明确的“否”或“可能为是”。
filter.has_bytes(bytes: &[u8]) -> bool
检查给定的字节数组是否在过滤器中。提供明确的“否”或“可能为是”。
许可证
ISC。
依赖项
~360–590KB