11个版本
0.3.2 | 2024年4月24日 |
---|---|
0.3.1 | 2024年4月20日 |
0.2.4 | 2024年3月11日 |
0.2.3 | 2023年10月31日 |
0.1.1 | 2018年1月20日 |
#278 在 数据结构
675 每月下载量
用于 seadawg
37KB
793 代码行
scalable_cuckoo_filter
Cuckoo Filter的一种变体,其大小可以根据需要自动调整。
示例
基本用法
use scalable_cuckoo_filter::ScalableCuckooFilter;
let mut filter = ScalableCuckooFilter::new(100, 0.001);
assert!(!filter.contains("foo"));
filter.insert("foo");
assert!(filter.contains("foo"));
过滤器自动增长
use scalable_cuckoo_filter::ScalableCuckooFilter;
let mut filter = ScalableCuckooFilter::new(100, 0.001);
assert_eq!(filter.capacity(), 128);
for i in 0..1000 {
filter.insert(&i);
}
assert_eq!(filter.capacity(), 1923);
过滤器缩小
use scalable_cuckoo_filter::ScalableCuckooFilter;
let mut filter = ScalableCuckooFilter::new(1000, 0.001);
for i in 0..100 {
filter.insert(&i);
}
assert_eq!(filter.capacity(), 1024);
assert_eq!(filter.bits(), 14336);
filter.shrink_to_fit();
for i in 0..100 {
assert!(filter.contains(&i));
}
assert_eq!(filter.capacity(), 128);
assert_eq!(filter.bits(), 1792);
参考
依赖关系
~300–550KB
~11K SLoC