[][src]Trait succinct::BitVecMut

pub trait BitVecMut: BitVec {
    fn set_bit(&mut self, position: u64, value: bool) { ... }
fn set_block(&mut self, position: usize, value: Self::Block) { ... }
fn set_bits(&mut self, start: u64, count: usize, value: Self::Block) { ... } }

Mutable bit vector operations that don’t affect the length.

Minimal complete definition is set_bit or set_block, since each is defined in terms of the other. Note that set_block in terms of set_bit is inefficient, and thus you should implement set_block directly if possible.

Provided methods

fn set_bit(&mut self, position: u64, value: bool)

Sets the bit at position to value.

The default implementation uses get_block and set_block.

Panics

Panics if position is out of bounds.

fn set_block(&mut self, position: usize, value: Self::Block)

Sets the block at position to value.

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. Implementations of set_block should not change those trailing bits.

The default implementation sets a block by setting each of its bits in turn. Consider it a slow reference implementation, and override it.

Panics

Panics if position is out of bounds.

fn set_bits(&mut self, start: u64, count: usize, value: Self::Block)

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

Panics

Panics if the bit span goes out of bounds.

Loading content...

Implementations on Foreign Types

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

impl<'a, Block: BlockType> BitVecMut for &'a mut [Block][src]

impl<Block: BlockType> BitVecMut for Vec<Block>[src]

impl BitVecMut for Vec<bool>[src]

impl BitVecMut for u8[src]

impl BitVecMut for u16[src]

impl BitVecMut for u32[src]

impl BitVecMut for u64[src]

impl BitVecMut for usize[src]

Loading content...

Implementors

impl<'a, Base: 'a + BitVecMut + ?Sized> BitVecMut for BitSliceMut<'a, Base>[src]

impl<Block: BlockType> BitVecMut for BitVector<Block>[src]

impl<Block: BlockType> BitVecMut for IntVector<Block>[src]

impl<Inner: BitVecMut> BitVecMut for BitBuffer<Inner>[src]

Loading content...