#array #no-std #methods #helpful #variety #fixed-size #tuple

no-std arraytools

用于处理固定大小数组的各种实用方法

6个版本

0.1.5 2019年2月23日
0.1.4 2019年2月22日

2904Rust模式

Download history 705/week @ 2024-03-13 767/week @ 2024-03-20 889/week @ 2024-03-27 366/week @ 2024-04-03 762/week @ 2024-04-10 1144/week @ 2024-04-17 850/week @ 2024-04-24 408/week @ 2024-05-01 316/week @ 2024-05-08 376/week @ 2024-05-15 347/week @ 2024-05-22 294/week @ 2024-05-29 549/week @ 2024-06-05 635/week @ 2024-06-12 348/week @ 2024-06-19 205/week @ 2024-06-26

1,829 每月下载量

MIT/Apache

28KB
331

arraytools

用于处理固定大小数组的各种实用方法。

docs.rs-hosted documentation travis build status

示例

数组的类似迭代器的方法

use arraytools::ArrayTools;

assert_eq!([1, 2, 3].map(|x| x+1), [2, 3, 4]);
assert_eq!([1, 2].zip(["one", "two"]), [(1, "one"), (2, "two")]);

简化数组创建的方法

use arraytools::ArrayTools;

let mut state = 1;
assert_eq!(<[_; 4]>::generate(|| { state *= 2; state }), [2, 4, 8, 16]);
assert_eq!(<[usize; 4]>::indices(), [0, 1, 2, 3]);

let s = "hello".to_string(); // Something `!Copy`
assert_eq!(<[String; 3]>::repeat(s).as_ref_array(), ["hello", "hello", "hello"]);

与同构元组的转换

use arraytools::ArrayTools;

let mut array = [2, 3, 5, 7, 11];
assert_eq!(array.into_tuple(), (2, 3, 5, 7, 11));
array = ArrayTools::from_tuple((1, 1, 2, 3, 5));
assert_eq!(array, [1, 1, 2, 3, 5]);

使用方法

如何与cargo一起使用

[dependencies]
arraytools = "0.1"

如何在2018版本crate中使用

use arraytools::ArrayTools;

由于需要非Copy切片模式,因此至少需要 Rust 1.31.0

无运行时依赖