Trait bv::BitVec [] [src]

pub trait BitVec {
    type Block: BlockType;
    fn bit_len(&self) -> u64;
fn bit_offset(&self) -> u8; fn block_len(&self) -> usize { ... }
fn get_bit(&self, position: u64) -> bool { ... }
fn get_block(&self, position: usize) -> Self::Block { ... }
fn get_bits(&self, start: u64, count: usize) -> Self::Block { ... } }

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

The underlying block type used to store the bits of the vector.

Required Methods

The length of the slice in bits.

The number of bits into the first block that the bit vector starts. Must be less than Block::nbits().

Provided Methods

The length of the slice in blocks.

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.

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.

Gets count bits starting at bit index start, interpreted as a little-endian integer.

Panics

Panics if the bit span goes out of bounds.

Implementations on Foreign Types

impl<Block: BlockType> BitVec for [Block]
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for [bool]
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for Vec<bool>
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for u8
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for u16
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for u32
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for u64
[src]

[src]

[src]

[src]

[src]

[src]

[src]

impl BitVec for usize
[src]

[src]

[src]

[src]

[src]

[src]

[src]

Implementors