5 个版本

使用旧的 Rust 2015

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

#2680Rust 模式

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

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));

无运行时依赖

功能