Expand description
SmallBitVec
is a bit vector, a vector of single-bit values stored compactly in memory.
SmallBitVec grows dynamically, like the standard Vec<T>
type. It can hold up to about one
word of bits inline (without a separate heap allocation). If the number of bits exceeds this
inline capacity, it will allocate a buffer on the heap.
ยงExample
use smallbitvec::SmallBitVec;
let mut v = SmallBitVec::new();
v.push(true);
v.push(false);
assert_eq!(v[0], true);
assert_eq!(v[1], false);
Macrosยง
- const_
debug_ ๐assert_ le - sbvec
- Creates a
SmallBitVec
containing the arguments.
Structsยง
- Header ๐
- Data stored at the start of the heap allocation.
- Into
Iter - An iterator that owns a SmallBitVec and yields its bits as
bool
values. - Iter
- An iterator that borrows a SmallBitVec and yields its bits as
bool
values. - Small
BitVec - A resizable bit vector, optimized for size and inline storage.
- VecRange
- An immutable view of a range of bits from a borrowed SmallBitVec.
Enumsยง
- Internal
Storage - A typed representation of a
SmallBitVec
โs internal storage.
Constantsยง
- HEAP_
FLAG ๐ - If the rightmost bit of
data
is set, then the remaining bits ofdata
are a pointer to a heap allocation.
Functionsยง
- bits_
per_ ๐storage - The number of bits in one
Storage
. - buffer_
len ๐ - The minimum number of
Storage
elements to hold at leastcap
bits. - header_
len ๐ - The number of
Storage
elements to allocate to hold a header. - inline_
bits ๐ - Total number of bits per word.
- inline_
capacity ๐ - For an inline vector, all bits except two can be used as storage capacity:
- inline_
index ๐ - An inline vector with the nth bit set.
- inline_
ones ๐ - An inline vector with the leftmost
n
bits set. - inline_
shift ๐ - Left shift amount to access the nth bit