5 个版本 (3 个重大更改)

0.3.0 2022年11月13日
0.2.0 2021年12月6日
0.1.1 2021年2月17日
0.1.0 2021年2月8日
0.0.0 2021年1月18日

#1911 in 数据结构


2 crate 中使用

MIT/Apache

27KB
443

stride

Crates.io Version Docs.rs Latest Build Status

步长切片类型。

入门指南

此 crate 提供了一种类似切片的 Stride<T, S> 类型,其中元素在内存中以常量 S 的间隔排列。

例如,给定底层切片 &[1, 2, 3, 4, 5, 6],元素 &[1, 3, 5] 是一个步长为 2 的步长切片。此 crate 利用 const generics 在编译时提供步长值 S,因此步长切片没有运行时内存开销;Stride 占用的空间与切片相同。

Stride 实现了许多类似切片的操作,包括迭代和索引。方法名称与切片类型类似。

use stride::Stride;

// The underlying data.
let data = &mut [1, 2, 7, 4, 5, 6];

// Create a strided slice with a stride of `2` referring to
// elements `1`, `7`, and `5`.
let stride = Stride::<_, 2>::new_mut(data);

assert_eq!(stride.len(), 3);

// We can use indexing to view values ..
assert_eq!(stride[0], 1);
assert_eq!(stride[1..3], &[7, 5]);

// .. or modify them.
stride[1] = 3;
assert_eq!(stride, &[1, 3, 5]);

assert_eq!(data, &[1, 2, 3, 4, 5, 6]);

有关更多信息,请参阅 API 文档

许可协议

许可协议为以下之一

任选其一。

无运行时依赖