#array #generics #const #const-generics

newtype_array

一个宏,用于帮助实现新类型数组上的标准派生特性

7 个版本

使用旧的 Rust 2015

0.1.6 2018年12月7日
0.1.5 2018年12月7日
0.1.4 2018年7月6日

#15 in #arrays


用于 mtree

Apache-2.0/MIT

13KB
244

这个包包含一个宏 newtype_arrays,它会创建透明的数组新类型,并实现其标准特性。当泛型常量到来时将不再需要,但在此期间,它意味着你可以在稳定的 Rust 上使用大型数组。

示例

#[macro_use]
extern crate newtype_array;

use std::collections::HashMap;

// Sha385 length
newtype_array!(pub struct Array48(pub 48));
// Sha512 length
newtype_array!(pub struct Array64(pub 64));

// We've got `Clone` and `PartialEq`/`Eq`
let arr1 = Array48([0u8; 48]);
let arr2 = arr1.clone();
assert_eq!(arr1, arr2);

// `Hash` is implemented as well
let mut map = HashMap::new();
map.insert(arr1, "hello");

lib.rs:

newtype_array

这个包包含一个宏 newtype_arrays,它会创建透明的数组新类型,并实现其标准特性。当泛型常量到来时将不再需要,但在此期间,它意味着你可以在稳定的 Rust 上使用大型数组。

示例

#[macro_use]
extern crate newtype_array;

use std::collections::HashMap;

// Sha385 length
newtype_array!(pub struct Array48(pub 48));
// Sha512 length
newtype_array!(pub struct Array64(pub 64));

// We've got `Clone` and `PartialEq`/`Eq`
let arr1 = Array48([0u8; 48]);
let arr2 = arr1.clone();
assert_eq!(arr1, arr2);

// `Hash` is implemented as well
let mut map = HashMap::new();
map.insert(arr1, "hello");

无运行时依赖