liblisa::utils::bitmap

Trait Bitmap

pub trait Bitmap: BitmapSlice {
    // Required methods
    fn new_all_zeros(len: usize) -> Self;
    fn new_all_ones(len: usize) -> Self;
    fn set(&mut self, index: usize) -> bool;
    fn clear(&mut self, index: usize) -> bool;
    fn and_with(&mut self, other: &impl BitmapSlice) -> bool;
    fn clear_from(&mut self, other: &impl BitmapSlice) -> bool;
    fn or_with(&mut self, other: &impl BitmapSlice) -> bool;
    fn xor_with(&mut self, other: &impl BitmapSlice) -> bool;
    fn is_all_ones(&self) -> bool;
    fn is_superset_of(&self, other: &Self) -> bool;

    // Provided methods
    fn set_many(&mut self, indices: impl Iterator<Item = usize>) { ... }
    fn clear_many(&mut self, indices: impl Iterator<Item = usize>) { ... }
}
Expand description

A writable bitmap.

Required Methods§

fn new_all_zeros(len: usize) -> Self

Creates a new bitmap with all bits set to zero.

fn new_all_ones(len: usize) -> Self

Creates a new bitmap with all bits set to one.

fn set(&mut self, index: usize) -> bool

Sets the bit at position index to one.

fn clear(&mut self, index: usize) -> bool

Sets the bit at position index to zero.

fn and_with(&mut self, other: &impl BitmapSlice) -> bool

ANDs the slice with other. Returns true if anything changed.

fn clear_from(&mut self, other: &impl BitmapSlice) -> bool

Computes self & !other. Returns true if anything changed.

fn or_with(&mut self, other: &impl BitmapSlice) -> bool

ORs the slice with other. Returns true if anything changed.

fn xor_with(&mut self, other: &impl BitmapSlice) -> bool

XORs the slice with other. Returns true if anything changed.

fn is_all_ones(&self) -> bool

Returns true if the bitmap contains only ones.

fn is_superset_of(&self, other: &Self) -> bool

Returns true if the bitmap is a superset of other. In other words: for every bit that is set in other, it should also be set in self.

Provided Methods§

fn set_many(&mut self, indices: impl Iterator<Item = usize>)

Sets all bits in indices to one.

fn clear_many(&mut self, indices: impl Iterator<Item = usize>)

Sets all bits in indices to zero.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<const N: usize> Bitmap for FixedBitmapU64<N>