#iterator #cache #data-structures #adaptor #produce #values #copy

reiterate

带有缓存的迭代器适配器,允许通过缓存重复遍历相同的迭代器

4 个版本

0.1.3 2019年5月20日
0.1.2 2019年3月29日
0.1.1 2019年3月29日
0.1.0 2019年2月2日

缓存 中排名第 270

MIT/Apache

8KB
155

reiterate

Build Status License: MIT/Apache-2.0

围绕一个可以产生多个共享底层缓存的迭代器的适配器。

底层迭代器必须产生堆分配的 StableDeref 值,例如 Box 或 String。如果您有一个产生 Copy 值的迭代器,请使用 CopyReiterator 代替。

use reiterate::Reiterate;
let x = vec!["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()];
let reiterate = Reiterate::new(x);
for i in &reiterate {
    println!("{}", i);    
}
for i in &reiterate {
    // will reuse cached values
    println!("{}", i);    
}

依赖项

~96KB