[−]Struct oxygengine_core::ecs::prelude::BitSet
A BitSet
is a simple set designed to track which indices are placed
into it.
Note, a BitSet
is limited by design to only usize**4
indices.
Adding beyond this limit will cause the BitSet
to panic.
Methods
impl BitSet
pub fn new() -> BitSet
Creates an empty BitSet
.
pub fn with_capacity(max: u32) -> BitSet
Creates an empty BitSet
, preallocated for up to max
indices.
pub fn add(&mut self, id: u32) -> bool
Adds id
to the BitSet
. Returns true
if the value was
already in the set.
pub fn remove(&mut self, id: u32) -> bool
Removes id
from the set, returns true
if the value
was removed, and false
if the value was not set
to begin with.
pub fn contains(&self, id: u32) -> bool
Returns true
if id
is in the set.
pub fn clear(&mut self)
Completely wipes out the bit set.
Trait Implementations
impl<'a, T> BitAnd<T> for &'a BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetAnd<&'a BitSet, T>
The resulting type after applying the &
operator.
fn bitand(self, rhs: T) -> <&'a BitSet as BitAnd<T>>::Output
impl<T> BitAnd<T> for BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetAnd<BitSet, T>
The resulting type after applying the &
operator.
fn bitand(self, rhs: T) -> <BitSet as BitAnd<T>>::Output
impl<'a, B> BitAndAssign<&'a B> for BitSet where
B: BitSetLike,
B: BitSetLike,
fn bitand_assign(&mut self, lhs: &B)
impl<T> BitOr<T> for BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetOr<BitSet, T>
The resulting type after applying the |
operator.
fn bitor(self, rhs: T) -> <BitSet as BitOr<T>>::Output
impl<'a, T> BitOr<T> for &'a BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetOr<&'a BitSet, T>
The resulting type after applying the |
operator.
fn bitor(self, rhs: T) -> <&'a BitSet as BitOr<T>>::Output
impl<'a, B> BitOrAssign<&'a B> for BitSet where
B: BitSetLike,
B: BitSetLike,
fn bitor_assign(&mut self, lhs: &B)
impl BitSetLike for BitSet
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>
impl<'a, T> BitXor<T> for &'a BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetXor<&'a BitSet, T>
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: T) -> <&'a BitSet as BitXor<T>>::Output
impl<T> BitXor<T> for BitSet where
T: BitSetLike,
T: BitSetLike,
type Output = BitSetXor<BitSet, T>
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: T) -> <BitSet as BitXor<T>>::Output
impl<'a, B> BitXorAssign<&'a B> for BitSet where
B: BitSetLike,
B: BitSetLike,
fn bitxor_assign(&mut self, lhs: &B)
impl Clone for BitSet
fn clone(&self) -> BitSet
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for BitSet
impl Default for BitSet
impl DrainableBitSet for BitSet
impl<'a> Extend<&'a u32> for BitSet
fn extend<T>(&mut self, iter: T) where
T: IntoIterator<Item = &'a u32>,
T: IntoIterator<Item = &'a u32>,
impl Extend<u32> for BitSet
fn extend<T>(&mut self, iter: T) where
T: IntoIterator<Item = u32>,
T: IntoIterator<Item = u32>,
impl<'a> FromIterator<&'a u32> for BitSet
fn from_iter<T>(iter: T) -> BitSet where
T: IntoIterator<Item = &'a u32>,
T: IntoIterator<Item = &'a u32>,
impl FromIterator<u32> for BitSet
fn from_iter<T>(iter: T) -> BitSet where
T: IntoIterator<Item = u32>,
T: IntoIterator<Item = u32>,
impl IntoIterator for BitSet
type Item = <BitIter<BitSet> as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = BitIter<BitSet>
Which kind of iterator are we turning this into?
fn into_iter(self) -> <BitSet as IntoIterator>::IntoIter
impl<'a> IntoIterator for &'a BitSet
type Item = <BitIter<&'a BitSet> as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = BitIter<&'a BitSet>
Which kind of iterator are we turning this into?
fn into_iter(self) -> <&'a BitSet as IntoIterator>::IntoIter
impl Join for BitSet
[src]
type Type = u32
Type of joined components.
type Value = ()
Type of joined storages.
type Mask = BitSet
Type of joined bit mask.
unsafe fn open(self) -> (<BitSet as Join>::Mask, <BitSet as Join>::Value)
[src]
unsafe fn get(&mut <BitSet as Join>::Value, id: u32) -> <BitSet as Join>::Type
[src]
ⓘImportant traits for JoinIter<J>fn join(self) -> JoinIter<Self>
[src]
fn maybe(self) -> MaybeJoin<Self>
[src]
fn is_unconstrained() -> bool
[src]
impl<'a> Join for &'a BitSet
[src]
type Type = u32
Type of joined components.
type Value = ()
Type of joined storages.
type Mask = &'a BitSet
Type of joined bit mask.
unsafe fn open(
self
) -> (<&'a BitSet as Join>::Mask, <&'a BitSet as Join>::Value)
[src]
self
) -> (<&'a BitSet as Join>::Mask, <&'a BitSet as Join>::Value)
unsafe fn get(
&mut <&'a BitSet as Join>::Value,
id: u32
) -> <&'a BitSet as Join>::Type
[src]
&mut <&'a BitSet as Join>::Value,
id: u32
) -> <&'a BitSet as Join>::Type
ⓘImportant traits for JoinIter<J>fn join(self) -> JoinIter<Self>
[src]
fn maybe(self) -> MaybeJoin<Self>
[src]
fn is_unconstrained() -> bool
[src]
impl<'a> Not for &'a BitSet
type Output = BitSetNot<&'a BitSet>
The resulting type after applying the !
operator.
fn not(self) -> <&'a BitSet as Not>::Output
impl Not for BitSet
Auto Trait Implementations
impl RefUnwindSafe for BitSet
impl Send for BitSet
impl Sync for BitSet
impl Unpin for BitSet
impl UnwindSafe for BitSet
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
fn get_type_id(&self) -> TypeId
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Erased for T
impl<T> Event for T where
T: Send + Sync + 'static,
[src]
T: Send + Sync + 'static,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T> Resource for T where
T: Any + Send + Sync,
[src]
T: Any + Send + Sync,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> TryDefault for T where
T: Default,
[src]
T: Default,
fn try_default() -> Result<T, String>
[src]
fn unwrap_default() -> Self
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,