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
20KB
233 行
peekaboo
可查看迭代器,允许在不消耗的情况下查看下一个 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));