[]Trait oxygengine::core::ecs::hibitset::BitSetLike

pub trait BitSetLike {
    fn layer3(&self) -> usize;
fn layer2(&self, i: usize) -> usize;
fn layer1(&self, i: usize) -> usize;
fn layer0(&self, i: usize) -> usize;
fn contains(&self, i: u32) -> bool; fn get_from_layer(&self, layer: usize, idx: usize) -> usize { ... }
fn is_empty(&self) -> bool { ... }
fn iter(self) -> BitIter<Self>

Important traits for BitIter<T>

impl<T> Iterator for BitIter<T> where
    T: BitSetLike
type Item = u32;
{ ... } }

A generic interface for BitSetLike-like types.

Every BitSetLike is hierarchical, meaning that there are multiple levels that branch out in a tree like structure.

Layer0 each bit represents one Index of the set Layer1 each bit represents one usize of Layer0, and will be set only if the word below it is not zero. Layer2 has the same arrangement but with Layer1, and Layer3 with Layer2.

This arrangement allows for rapid jumps across the key-space.

Required methods

fn layer3(&self) -> usize

Return a usize where each bit represents if any word in layer2 has been set.

fn layer2(&self, i: usize) -> usize

Return the usize from the array of usizes that indicates if any bit has been set in layer1

fn layer1(&self, i: usize) -> usize

Return the usize from the array of usizes that indicates if any bit has been set in layer0

fn layer0(&self, i: usize) -> usize

Return a usize that maps to the direct 1:1 association with each index of the set

fn contains(&self, i: u32) -> bool

Allows checking if set bit is contained in the bit set.

Loading content...

Provided methods

fn get_from_layer(&self, layer: usize, idx: usize) -> usize

Gets the usize corresponding to layer and index.

The layer should be in the range [0, 3]

fn is_empty(&self) -> bool

Returns true if this BitSetLike contains nothing, and false otherwise.

fn iter(self) -> BitIter<Self>

Important traits for BitIter<T>

impl<T> Iterator for BitIter<T> where
    T: BitSetLike
type Item = u32;

Create an iterator that will scan over the keyspace

Loading content...

Trait Implementations

impl<'a> Join for &'a (dyn BitSetLike + 'a)

type Type = u32

Type of joined components.

type Value = ()

Type of joined storages.

type Mask = &'a (dyn BitSetLike + 'a)

Type of joined bit mask.

Implementations on Foreign Types

impl<'a, T> BitSetLike for &'a mut T where
    T: BitSetLike + ?Sized

impl<'a, T> BitSetLike for &'a T where
    T: BitSetLike + ?Sized

Loading content...

Implementors

impl BitSetLike for AtomicBitSet

impl BitSetLike for BitSetAll

impl BitSetLike for BitSet

impl<A> BitSetLike for BitSetNot<A> where
    A: BitSetLike

impl<A, B> BitSetLike for BitSetAnd<A, B> where
    A: BitSetLike,
    B: BitSetLike

impl<A, B> BitSetLike for BitSetOr<A, B> where
    A: BitSetLike,
    B: BitSetLike

impl<A, B> BitSetLike for BitSetXor<A, B> where
    A: BitSetLike,
    B: BitSetLike

Loading content...