pub trait BitVecEncoding<Item> {
    const BITS: u32;
    const MASK: usize = _;

    // Required methods
    fn encode(item: Item) -> usize;
    fn decode(bits: usize) -> Item;

    // Provided methods
    fn get_bit_shift(bit_idx: u32) -> u32 { ... }
    fn item_to_word(item_enc: usize, bit_idx: u32) -> usize { ... }
    fn word_to_item(word_val: usize, bit_idx: u32) -> usize { ... }
}
Expand description

Trait for encoding an item as bits for storing in a BitVec

Required Associated Constants§

source

const BITS: u32

Number of bits in each encoded item

Provided Associated Constants§

source

const MASK: usize = _

Mask for the bits in an encoded item

Required Methods§

source

fn encode(item: Item) -> usize

Encode an item into its representation as bits

source

fn decode(bits: usize) -> Item

Decode an item from its representation as bits

Provided Methods§

source

fn get_bit_shift(bit_idx: u32) -> u32

source

fn item_to_word(item_enc: usize, bit_idx: u32) -> usize

source

fn word_to_item(word_val: usize, bit_idx: u32) -> usize

Implementors§

source§

impl<Item> BitVecEncoding<Item> for BitVecEncodingDefaultwhere Item: BitVecNative,

source§

const BITS: u32 = Item::BITS

source§

const MASK: usize = _