[−][src]Trait succinct::BitVec
Read-only bit vector operations.
Minimal complete definition is get_bit
or get_block
, since each
is defined in terms of the other. Note that get_block
in terms of
get_bit
is inefficient, and thus you should implement get_block
directly if possible.
Associated Types
Loading content...Required methods
Loading content...Provided methods
fn block_len(&self) -> usize
The length of the slice in blocks.
fn get_bit(&self, position: u64) -> bool
Gets the bit at position
The default implementation calls get_block
and masks out the
correct bit.
Panics
Panics if position
is out of bounds.
fn get_block(&self, position: usize) -> Self::Block
Gets the block at position
The bits are laid out Block::nbits()
per block, with the notional
zeroth bit in the least significant position. If self.bit_len()
is
not a multiple of Block::nbits()
then the last block will
contain extra bits that are not part of the bit vector.
The default implementation assembles a block by reading each of its bits. Consider it a slow reference implementation, and override it.
Panics
Panics if position
is out of bounds.
fn get_bits(&self, start: u64, count: usize) -> Self::Block
Gets count
bits starting at bit index start
, interpreted as a
little-endian integer.
Panics
Panics if the bit span goes out of bounds.