1个稳定版本

1.0.0 2023年1月17日

#2517 in 算法


用于 nutils-poly

MIT 协议

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