Struct bones_ecs::entities::OptionalQueryItem

source ·
pub struct OptionalQueryItem<'a, T: HasSchema, S>(pub &'a S, pub PhantomData<&'a T>);
Expand description

Wrapper for the Comp SystemParam used as QueryItem to iterate over entities optionally retrieving components from ComponentStore. Entities iterated over will not be filtered by OptionalQueryItem.

See Optional helper func for constructing OptionalQueryItem and usage.

Tuple Fields§

§0: &'a S§1: PhantomData<&'a T>

Trait Implementations§

source§

impl<'a, T: HasSchema, S, C> QueryItem for &'a OptionalQueryItem<'a, T, S>
where C: ComponentIterBitset<'a, T> + 'a, S: Deref<Target = C> + 'a,

Immutably iterate over optional component with syntax: &Optional(&Comp<T>) / &Optional(&CompMut<T>). (For mutable optional iteration we require &mut OptionalMut(&mut CompMut<T>))

§

type Iter = Map<UntypedComponentOptionalBitsetIterator<'a>, for<'b> fn(_: Option<SchemaRef<'b>>) -> Option<&'b T>>

The type of iterator this query item creates
source§

fn apply_bitset(&self, _bitset: &mut BitSetVec)

Modify the iteration bitset
source§

fn get_single_with_bitset( self, bitset: Rc<BitSetVec>, ) -> Result<<Self::Iter as Iterator>::Item, QuerySingleError>

Return the item that matches the query within the given bitset if there is exactly one entity that matches this query item.
source§

fn iter_with_bitset(self, bitset: Rc<BitSetVec>) -> Self::Iter

Return an iterator over the provided bitset.

Auto Trait Implementations§

§

impl<'a, T, S> Freeze for OptionalQueryItem<'a, T, S>

§

impl<'a, T, S> RefUnwindSafe for OptionalQueryItem<'a, T, S>

§

impl<'a, T, S> Send for OptionalQueryItem<'a, T, S>
where S: Sync,

§

impl<'a, T, S> Sync for OptionalQueryItem<'a, T, S>
where S: Sync,

§

impl<'a, T, S> Unpin for OptionalQueryItem<'a, T, S>

§

impl<'a, T, S> UnwindSafe for OptionalQueryItem<'a, T, S>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> RawDrop for T

§

unsafe fn raw_drop(ptr: *mut c_void)

Write the default value of the type to the pointer. Read more
§

fn raw_drop_cb() -> Unsafe<&'static (dyn Fn(*mut c_void) + Send + Sync)>

Get a callback suitable for [SchemaData].
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V