#不可变 #引用 #peekable #迭代器 #常规 #窥视 #窥视者

peepable

Peepable 是一个允许窥视不可变引用的 Peekable

2 个版本

使用旧的 Rust 2015

0.1.1 2017年8月18日
0.1.0 2017年8月18日

1846算法

MIT 许可证

7KB
67

peepable

Crates.io Build Status docs.rs

peepable 是 Rust 对 Peekable 的类似实现。它通过急切地加载迭代器的下一个值而略有不同。这允许在不可变引用上调用 .peep(),从而避免借用检查器。

示例

use std::iter::Iterator;
use peepable::Peepable;

let mut iter = vec![1, 2, 3].into_iter();

// Note, this is not "mut peeper"!
let peeper = Peepable::new(iter);

assert_eq!(peeper.peep(), Some(&1));

// When mutable, we can use it as a normal iterator.
let mut peeper = peeper;

assert_eq!(peeper.next(), Some(1));

assert_eq!(peeper.peep(), Some(&2));
assert_eq!(peeper.next(), Some(2));

assert_eq!(peeper.next(), Some(3));

assert_eq!(peeper.peep(), None);
assert_eq!(peeper.next(), None);

许可证

peepable 在 MIT 许可证 下授权。

无运行时依赖