#iterator #peek #peekable

peekaboo

可查看迭代器,允许在不消耗的情况下查看下一个 N 个元素

4 个版本 (2 个破坏性更新)

0.3.0 2022年7月8日
0.2.1 2022年7月6日
0.2.0 2022年7月6日
0.1.0 2022年7月3日

#7 in #peekable

MIT/Apache

20KB
233

peekaboo

文档 - crates.io

可查看迭代器,允许在不消耗的情况下查看下一个 N 个元素。

默认与 no_std 兼容。它也不执行任何分配。

示例

基本用法

let xs = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// create an iterator that allows us to peek at the next 4 element
let mut iter = xs.iter().peekable_n::<4>();

// peek() lets us see into the future
assert_eq!(iter.peek::<1>(), Some(&&1));
assert_eq!(iter.peek::<3>(), Some(&&3));

// the iterator will not advance until we call `next`
assert_eq!(iter.next(), Some(&1));
assert_eq!(iter.next(), Some(&2));

使用

运行 cargo add peekaboo (如果使用 Rust 版本高于 1.62),或者手动添加

peekaboo = "0.3.0"

到您的 Cargo.toml


lib.rs:

可查看迭代器,允许在不消耗的情况下查看下一个 N 个元素。

默认与 no_std 兼容。它也不执行任何分配。

示例

基本用法

use peekaboo::*;
let xs = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// create an iterator that allows us to peek at the next 4 element
let mut iter = xs.iter().peekable_n::<4>();

// peek() lets us see into the future
assert_eq!(iter.peek::<1>(), Some(&&1));
assert_eq!(iter.peek::<3>(), Some(&&3));

// the iterator will not advance until we call `next`
assert_eq!(iter.next(), Some(&1));
assert_eq!(iter.next(), Some(&2));

无运行时依赖