1个稳定版本
1.0.0 | 2023年1月17日 |
---|
#2517 in 算法
用于 nutils-poly
120KB
3K SLoC
此crate定义了特性和适配器,允许对序列数据进行通用处理。对于此crate而言,“序列”是包含已知(在运行时)数量项的线性集合。《Sequence》和《MutSequence》特性和《std::iter::Iterator》是随机访问等效。
示例
我们将序列特性引入作用域
use sqnc::{Sequence, MutSequence};
现在我们可以将 std::ops::Range<usize>
作为 Sequence
使用
let x = 4..8;
assert_eq!(x.get(1), Some(5));
assert_eq!(x.first(), Some(4));
同样对于 [usize]
,使用完全限定语法以区分从《slice》的内在实现
let x: &[usize] = &[4, 5, 6, 7];
assert_eq!(Sequence::get(x, 1), Some(&5));
assert_eq!(Sequence::first(x), Some(&4));
Sequence
提供类似于《std::iter::Iterator》的适配器
let x = [4, 5, 6, 7];
// Using Fully Qualified Syntax to disambiguate from `array::map()`.
let y = Sequence::map(x, |v| v + 2);
assert!(y.iter().eq(6..10));
进一步阅读
请参阅crate文档以获取详细描述。
依赖项
~0–295KB