#bitmap #bitvec #vec #heap-allocation

smallbitvec

针对大小和内联存储优化的位向量

19个稳定版本

2.5.3 2024年3月17日
2.5.1 2021年8月5日
2.5.0 2020年5月8日
2.4.0 2019年5月15日
1.0.7 2017年9月27日

#55数据结构

Download history 10994/week @ 2024-04-23 12964/week @ 2024-04-30 12714/week @ 2024-05-07 11968/week @ 2024-05-14 12438/week @ 2024-05-21 13672/week @ 2024-05-28 12324/week @ 2024-06-04 14559/week @ 2024-06-11 16678/week @ 2024-06-18 16217/week @ 2024-06-25 14694/week @ 2024-07-02 14758/week @ 2024-07-09 14813/week @ 2024-07-16 14604/week @ 2024-07-23 13559/week @ 2024-07-30 12405/week @ 2024-08-06

57,767 每月下载量
11 包(7 个直接)中使用

MIT/Apache

42KB
1K SLoC

smallbitvec

一个指针大小,可以存储数据在内联或堆上的位向量。类似于 bit-vec 包,但针对较小的内联大小和减少分配进行了优化。


lib.rs:

SmallBitVec 是一个位向量,一个紧凑存储在内存中的单比特值数组。

SmallBitVec 会动态增长,类似于标准 Vec<T> 类型。它可以内联存储大约一个字节的比特(不需要单独的堆分配)。如果比特数超过这个内联容量,它将在堆上分配一个缓冲区。

示例

use smallbitvec::SmallBitVec;

let mut v = SmallBitVec::new();
v.push(true);
v.push(false);

assert_eq!(v[0], true);
assert_eq!(v[1], false);

无运行时依赖