#iterator #tail #head #slice #split #repeatedly #element

无 std head-tail-iter

反复分割头和尾的迭代器

2 个稳定版本

使用旧的 Rust 2015

1.0.1 2023 年 12 月 2 日
1.0.0 2023 年 10 月 21 日
0.1.0 2023 年 10 月 21 日

#1797Rust 模式

MIT/Apache

9KB
155

Head-Tail-Iter

将切片分割成头和尾的迭代器。然后,将尾分割成其头和尾,依此类推。

迭代器的元素类型是 (&'a T, &'a [T])。迭代会持续进行,直到没有元素为止。因此,最后一个返回的值具有原始切片的最后一个元素作为其头,并且一个空切片作为其尾。

示例

use std::fmt::Write;
use head_tail_iter::HeadTailIterator;

let mut s = String::new();
for x in [0, 1, 2, 3].head_tail_pairs() {
    writeln!(&mut s, "{:?}", x);
}
assert_eq!(s, "\
(0, [1, 2, 3])
(1, [2, 3])
(2, [3])
(3, [])
");
use head_tail_iter::HeadTailIterator;

for (head, tail) in vec![3, 2, 1, 0].head_tail_pairs() {
    assert_eq!(*head, tail.len());
}

无运行时依赖