Struct specs::join::MaybeJoin [−][src]
pub struct MaybeJoin<J: Join>(pub J);
A Join
-able structure that yields all indices, returning None
for all
missing elements and Some(T)
for found elements.
For usage see Join::maybe()
.
WARNING: Do not have a join of only MaybeJoin
s. Otherwise the join will
iterate over every single index of the bitset. If you want a join with
all MaybeJoin
s, add an EntitiesRes
to the join as well to bound the
join to all entities that are alive.
Trait Implementations
impl<T> Join for MaybeJoin<T> where
T: Join,
[src]
impl<T> Join for MaybeJoin<T> where
T: Join,
type Type = Option<<T as Join>::Type>
Type of joined components.
type Value = (<T as Join>::Mask, <T as Join>::Value)
Type of joined storages.
type Mask = BitSetAll
Type of joined bit mask.
unsafe fn open(self) -> (Self::Mask, Self::Value)
[src]
unsafe fn open(self) -> (Self::Mask, Self::Value)
Open this join by returning the mask and the storages. Read more
unsafe fn get((mask, value): &mut Self::Value, id: Index) -> Self::Type
[src]
unsafe fn get((mask, value): &mut Self::Value, id: Index) -> Self::Type
Get a joined component value by a given index.
fn is_unconstrained() -> bool
[src]
fn is_unconstrained() -> bool
If this Join
typically returns all indices in the mask, then iterating over only it or combined with other joins that are also dangerous will cause the JoinIter
/ParJoin
to go through all indices which is usually not what is wanted and will kill performance. Read more
ⓘImportant traits for JoinIter<J>fn join(self) -> JoinIter<Self> where
Self: Sized,
[src]
fn join(self) -> JoinIter<Self> where
Self: Sized,
Create a joined iterator over the contents.
fn maybe(self) -> MaybeJoin<Self> where
Self: Sized,
[src]
fn maybe(self) -> MaybeJoin<Self> where
Self: Sized,
Returns a Join
-able structure that yields all indices, returning None
for all missing elements and Some(T)
for found elements. Read more