Skip to main content

Crate ts_array256

Crate ts_array256 

Source
Expand description

§ts_array256

A sparse array of 256 elements.

Used in bart as sparse backing storage for the node tries. Generally useful for memory-efficient storage of items indexed by u8.

Indexed by Bitset256 and has configurable backing ArrayStorage (typically Vec).

§Examples

use ts_array256::Array256;
use ts_bitset::Bitset256;

fn main() {
    let mut ary = Array256::<Vec<usize>>::default();

    ary.insert(0, 1234);
    assert_eq!(ary.get(0), Some(&1234));
    assert_eq!(ary.get(123), None);

    *ary.get_mut(0).unwrap() += 1;
    assert_eq!(ary.get(0), Some(&1235));

    ary.insert(3, 555);

    let bitset_test = Bitset256::EMPTY.with_bits(&[0, 1, 2, 3, 4]);
    let intersected_bit = ary.intersection_top(&bitset_test);
    assert_eq!(intersected_bit, Some(3));
    assert_eq!(
        Bitset256::EMPTY.with_bits(&[0, 3]),
        bitset_test &*ary.bitset(),
    );
}

Structs§

Array256
A sparse array of 256 elements.

Traits§

ArrayStorage
Backing storage for Array256.
ArrayStorageSliceExt
Extension methods for ArrayStorage.
ConstEmptyArrayStorage
Const-construct an ArrayStorage.