#iterator #peek #numbers #stacked #peekable #element #peeking

duck

类似于 Iterator::peekable,但可以被堆叠任意次数

2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2017年7月23日
0.1.0 2017年7月18日

#8#stacked

MIT/Apache

9KB
145

duck

它是一只看鸭子... 理解了吗?


lib.rs:

该包公开了一个 .peeking() 方法,用于在不消耗的情况下查看迭代器中的下一个元素。

与标准库中的 peekable 方法不同,peeking 可以被 堆叠。这意味着链式调用多个 peeking 将会增加 peek 返回的元素数量。

请注意,该库会 .clone() 被查看的元素。虽然这不是绝对必要的,但它确实使实现更容易理解,特别是在当前 Rust 缺乏 泛型关联类型 的情况下。

示例

let anatids = vec!["duck", "goose", "swan"];

// Since .peeking() is called twice, this iterator will peek two elements ahead
let mut iter = anatids.into_iter().peeking().peeking();
assert_eq!(iter.peek(), Some(("duck", Some("goose"))));

// Step the iterator twice
iter.next(); iter.next();

// Now we're at "swan", which has no elements after it
assert_eq!(iter.peek(), Some(("swan", None)));

无运行时依赖