#indexing #slice #reverse #view #negative #reversed #rev

no-std rev_slice

用于操作切片反转视图的新类型

5 个版本

使用旧的 Rust 2015

0.1.5 2018 年 10 月 23 日
0.1.4 2018 年 10 月 22 日
0.1.3 2018 年 8 月 5 日

#2680Rust 模式

Download history 114/week @ 2024-03-24 312/week @ 2024-03-31 144/week @ 2024-04-07 438/week @ 2024-04-14 119/week @ 2024-04-21 90/week @ 2024-04-28 172/week @ 2024-05-05 166/week @ 2024-05-12 184/week @ 2024-05-19 142/week @ 2024-05-26 590/week @ 2024-06-02 137/week @ 2024-06-09 174/week @ 2024-06-16 515/week @ 2024-06-23 297/week @ 2024-06-30 323/week @ 2024-07-07

1,312 每月下载量

MIT 许可证

9KB
166

rev_slice

rust 切片负索引的简单替代方案

是否曾在 Rust 中想要 a[-1]?使用这个包,你可以这样操作:a.rev()[0]

还提供了其他切片方法,你可以再次使用 .rev() 来获取原始切片。例如,你可以使用 a.rev()[1..].rev() 来移除切片的最后一个元素。


lib.rs:

提供对切片的反转视图。

使用时,导入 SliceExt 特性以获取切片的 .rev().rev_mut 扩展方法。然后像处理普通切片一样处理返回的 RevSlice:索引它、分割它、迭代它等。

示例

extern crate rev_slice;
use rev_slice::SliceExt;

let r = [1, 2, 4, 9, 16, 25].rev();
assert_eq!(r[0], 25);
assert_eq!(r[1..3].rev(), &[9, 16]);
assert_eq!(r.split_first().unwrap().0, &25);

let mut it = r.iter().cloned().skip(2);
assert_eq!(it.next(), Some(9));
assert_eq!(it.next(), Some(4));
assert_eq!(it.next(), Some(2));

无运行时依赖

功能