2 个不稳定版本
0.2.0 | 2021年8月9日 |
---|---|
0.1.0 | 2021年8月2日 |
#2544 在 算法
17KB
159 行
PIA (压缩整数数组)
PIA 是一个简单的 Rust 编程语言库,它添加了压缩整数数组,用于大量存储不同大小的变量。
PIA 使用 Rust 夜间通道中的功能。最值得注意的是 const_generics
、const_evaluatable_checked
和 int_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