3个稳定版本
使用旧的Rust 2015
1.2.0 | 2016年12月4日 |
---|---|
1.1.0 | 2016年12月2日 |
1.0.0 | 2015年12月24日 |
#49 in #collect
248 每月下载量
在 2 crate 中使用
11KB
130 行
collect_slice
将迭代器收集到切片中。
Rust自带了将迭代器的项收集到堆分配的Vec
或其他实现了FromIterator
的类型中的方法,但没有将项收集到栈分配数组中的方法,除非手动遍历迭代器。这个crate提供了通过collect_slice
方法收集迭代器项到可变切片(栈分配数组或其他)的替代方案。
对于任何实现了Iterator
的类型,此特性会自动实现。
示例
use collect_slice::CollectSlice;
let mut orig = [0; 8];
(0..8).map(|i| i * 2).collect_slice_checked(&mut orig[..]);
assert_eq!(orig, [0, 2, 4, 6, 8, 10, 12, 14]);
let mut buf = [42; 8];
orig.iter()
.map(|&x| x + 10)
.collect_slice_checked(&mut buf[..]);
assert_eq!(buf, [10, 12, 14, 16, 18, 20, 22, 24]);
用法
可以通过在Cargo.toml
中添加它作为依赖项来使用此crate
[dependencies]
collect_slice = "^1.2.0"
并在crate根目录中导入它
extern crate collect_slice;
然后可以通过在各个模块中导入该特性来使用提供的方法
use collect_slice::CollectSlice;