#array #integer #packed #storage #mass #sized #variables

nightly pia

一个简单的库,用于为大量不同大小的变量提供压缩整数数组存储

2 个不稳定版本

0.2.0 2021年8月9日
0.1.0 2021年8月2日

#2544算法

MIT/Apache

17KB
159

PIA (压缩整数数组)

PIA 是一个简单的 Rust 编程语言库,它添加了压缩整数数组,用于大量存储不同大小的变量。

PIA 使用 Rust 夜间通道中的功能。最值得注意的是 const_genericsconst_evaluatable_checkedint_bits_const。这些功能不稳定,可能引起意外的功能。使用风险自负。

虽然 Rust 生态系统已经存在一些压缩整数数组库,但没有一个看起来是完全功能性的。PIA 显著地利用了 const generics,以便可以创建任何大小或分辨率的压缩整数数组,并具有完全驻留在栈上以及能够利用 Rust 的编译时保证的优点。除此之外,PIA 在所有方法实现之下,基本上只是一个华丽的数组,所以整个结构体只是一个 [repr(transparent)] 数组 u8。所有这些都意味着 PIA 被设计成尽可能接近压缩整数数组的底层实现。

要开始,只需使用所需的项目数量和每个项目的位数构建一个新的 PackedIntegerArray 实例。

// Constructs a new packed integer array with 5 bits per item and 4 items
let packed_array = pia::PackedIntegerArray::<5, 4>::new();

之后,就像使用任何其他数组一样使用该数组。可以使用 PackedIntegerArray::set() 设置项目,使用 PackedIntegerArray::get() 查询项目,并使用 PackedIntegerArray::clear() 将项目重置为 0。

有关进一步文档,请参阅 docs.rs

依赖项

~46–255KB