Trait Query

Source
pub unsafe trait Query {
    type Item<'a>;
    type ArchState: Send + Sync + Debug + 'static;
    type State: Debug + 'static;

    // Required methods
    fn init(
        world: &mut World,
        config: &mut HandlerConfig,
    ) -> Result<(ComponentAccess, Self::State), InitError>;
    fn new_state(world: &mut World) -> Self::State;
    fn new_arch_state(
        arch: &Archetype,
        state: &mut Self::State,
    ) -> Option<Self::ArchState>;
    unsafe fn get<'a>(
        state: &Self::ArchState,
        row: ArchetypeRow,
    ) -> Self::Item<'a>;
}
Expand description

Types that can be fetched from an entity.

For more information, see the relevant tutorial chapter.

§Deriving

This trait can be safely implemented using the Query derive macro. For a struct to derive Query, all fields must also implement Query.

use evenio::prelude::*;

#[derive(Component, Debug)]
struct A(i32);

#[derive(Component, Debug)]
struct B;

#[derive(Query, Debug)]
struct CustomQuery<'a> {
    foo: &'a mut A,
    bar: EntityId,
    baz: Has<&'static B>,
}

let mut world = World::new();

world.add_handler(|_: Receiver<MyEvent>, q: Fetcher<CustomQuery>| {
    for item in q {
        println!("{item:?}");
    }
});

world.send(MyEvent);

§Safety

Implementors must ensure that Query::init correctly registers the data accessed in Query::get.

Required Associated Types§

Source

type Item<'a>

The item returned by this query. This is usually the same type as Self, but with a modified lifetime.

Source

type ArchState: Send + Sync + Debug + 'static

Per-archetype state, e.g. pointers to archetype columns.

Source

type State: Debug + 'static

Cached data for fetch initialization, e.g. component indices.

Required Methods§

Source

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, Self::State), InitError>

Initialize the query. Returns an expression describing the components accessed by the query and a new instance of Self::State.

Source

fn new_state(world: &mut World) -> Self::State

Returns a new Self::State instance.

Source

fn new_arch_state( arch: &Archetype, state: &mut Self::State, ) -> Option<Self::ArchState>

Returns a new Self::ArchState instance.

Source

unsafe fn get<'a>(state: &Self::ArchState, row: ArchetypeRow) -> Self::Item<'a>

Gets the query item at the given row in the archetype.

§Safety
  • row must be in bounds.
  • Must have the appropriate component access permissions described by the ComponentAccess returned by init.
  • The lifetime of the item is chosen by the caller. The item must not outlive the data it references.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Query for ()

Source§

type Item<'a> = ()

Source§

type ArchState = ()

Source§

type State = ()

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <() as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <() as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <() as Query>::State, ) -> Option<<() as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<() as Query>::ArchState, row: ArchetypeRow, ) -> <() as Query>::Item<'a>

Source§

impl<C> Query for &C
where C: Component,

Source§

type Item<'a> = &'a C

Source§

type ArchState = ColumnPtr<C>

Source§

type State = ComponentIdx

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <&C as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <&C as Query>::State

Source§

fn new_arch_state( arch: &Archetype, state: &mut <&C as Query>::State, ) -> Option<<&C as Query>::ArchState>

Source§

unsafe fn get<'a>( state: &<&C as Query>::ArchState, row: ArchetypeRow, ) -> <&C as Query>::Item<'a>

Source§

impl<C> Query for &mut C
where C: Component<Mutability = Mutable>,

Source§

type Item<'a> = &'a mut C

Source§

type ArchState = ColumnPtr<C>

Source§

type State = ComponentIdx

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <&mut C as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <&mut C as Query>::State

Source§

fn new_arch_state( arch: &Archetype, state: &mut <&mut C as Query>::State, ) -> Option<<&mut C as Query>::ArchState>

Source§

unsafe fn get<'a>( state: &<&mut C as Query>::ArchState, row: ArchetypeRow, ) -> <&mut C as Query>::Item<'a>

Source§

impl<Q0> Query for (Q0,)
where Q0: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>,)

Source§

type ArchState = (<Q0 as Query>::ArchState,)

Source§

type State = (<Q0 as Query>::State,)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0,) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0,) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0,) as Query>::State, ) -> Option<<(Q0,) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0,) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0,) as Query>::Item<'a>

Source§

impl<Q0, Q1> Query for (Q0, Q1)
where Q0: Query, Q1: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0, Q1) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1) as Query>::State, ) -> Option<<(Q0, Q1) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2> Query for (Q0, Q1, Q2)
where Q0: Query, Q1: Query, Q2: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0, Q1, Q2) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2) as Query>::State, ) -> Option<<(Q0, Q1, Q2) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3> Query for (Q0, Q1, Q2, Q3)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0, Q1, Q2, Q3) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4> Query for (Q0, Q1, Q2, Q3, Q4)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0, Q1, Q2, Q3, Q4) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5> Query for (Q0, Q1, Q2, Q3, Q4, Q5)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query, Q7: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>, <Q7 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState, <Q7 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State, <Q7 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query, Q7: Query, Q8: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>, <Q7 as Query>::Item<'a>, <Q8 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState, <Q7 as Query>::ArchState, <Q8 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State, <Q7 as Query>::State, <Q8 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query, Q7: Query, Q8: Query, Q9: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>, <Q7 as Query>::Item<'a>, <Q8 as Query>::Item<'a>, <Q9 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState, <Q7 as Query>::ArchState, <Q8 as Query>::ArchState, <Q9 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State, <Q7 as Query>::State, <Q8 as Query>::State, <Q9 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query, Q7: Query, Q8: Query, Q9: Query, Q10: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>, <Q7 as Query>::Item<'a>, <Q8 as Query>::Item<'a>, <Q9 as Query>::Item<'a>, <Q10 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState, <Q7 as Query>::ArchState, <Q8 as Query>::ArchState, <Q9 as Query>::ArchState, <Q10 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State, <Q7 as Query>::State, <Q8 as Query>::State, <Q9 as Query>::State, <Q10 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10) as Query>::Item<'a>

Source§

impl<Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11> Query for (Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11)
where Q0: Query, Q1: Query, Q2: Query, Q3: Query, Q4: Query, Q5: Query, Q6: Query, Q7: Query, Q8: Query, Q9: Query, Q10: Query, Q11: Query,

Source§

type Item<'a> = (<Q0 as Query>::Item<'a>, <Q1 as Query>::Item<'a>, <Q2 as Query>::Item<'a>, <Q3 as Query>::Item<'a>, <Q4 as Query>::Item<'a>, <Q5 as Query>::Item<'a>, <Q6 as Query>::Item<'a>, <Q7 as Query>::Item<'a>, <Q8 as Query>::Item<'a>, <Q9 as Query>::Item<'a>, <Q10 as Query>::Item<'a>, <Q11 as Query>::Item<'a>)

Source§

type ArchState = (<Q0 as Query>::ArchState, <Q1 as Query>::ArchState, <Q2 as Query>::ArchState, <Q3 as Query>::ArchState, <Q4 as Query>::ArchState, <Q5 as Query>::ArchState, <Q6 as Query>::ArchState, <Q7 as Query>::ArchState, <Q8 as Query>::ArchState, <Q9 as Query>::ArchState, <Q10 as Query>::ArchState, <Q11 as Query>::ArchState)

Source§

type State = (<Q0 as Query>::State, <Q1 as Query>::State, <Q2 as Query>::State, <Q3 as Query>::State, <Q4 as Query>::State, <Q5 as Query>::State, <Q6 as Query>::State, <Q7 as Query>::State, <Q8 as Query>::State, <Q9 as Query>::State, <Q10 as Query>::State, <Q11 as Query>::State)

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::State), InitError>

Source§

fn new_state( world: &mut World, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::State

Source§

fn new_arch_state( arch: &Archetype, _: &mut <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::State, ) -> Option<<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::ArchState>

Source§

unsafe fn get<'a>( _: &<(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::ArchState, row: ArchetypeRow, ) -> <(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11) as Query>::Item<'a>

Source§

impl<Q> Query for Option<Q>
where Q: Query,

Returns the result of Q as Some, or None if Q does not match.

Source§

type Item<'a> = Option<<Q as Query>::Item<'a>>

Source§

type ArchState = Option<<Q as Query>::ArchState>

Source§

type State = <Q as Query>::State

Source§

fn init( world: &mut World, config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <Option<Q> as Query>::State), InitError>

Source§

fn new_state(world: &mut World) -> <Option<Q> as Query>::State

Source§

fn new_arch_state( arch: &Archetype, state: &mut <Option<Q> as Query>::State, ) -> Option<<Option<Q> as Query>::ArchState>

Source§

unsafe fn get<'a>( state: &<Option<Q> as Query>::ArchState, row: ArchetypeRow, ) -> <Option<Q> as Query>::Item<'a>

Source§

impl<T> Query for PhantomData<T>
where T: ?Sized,

Like (), the PhantomData<T> query always succeeds.

Source§

type Item<'a> = PhantomData<T>

Source§

type ArchState = ()

Source§

type State = ()

Source§

fn init( _world: &mut World, _config: &mut HandlerConfig, ) -> Result<(ComponentAccess, <PhantomData<T> as Query>::State), InitError>

Source§

fn new_state(_world: &mut World) -> <PhantomData<T> as Query>::State

Source§

fn new_arch_state( _arch: &Archetype, _state: &mut <PhantomData<T> as Query>::State, ) -> Option<<PhantomData<T> as Query>::ArchState>

Source§

unsafe fn get<'a>( _state: &<PhantomData<T> as Query>::ArchState, _row: ArchetypeRow, ) -> <PhantomData<T> as Query>::Item<'a>

Implementors§

Source§

impl Query for EntityId

Returns the EntityId of the matched entity.

Source§

impl<L, R> Query for Or<L, R>
where L: Query, R: Query,

Source§

type Item<'a> = Or<<L as Query>::Item<'a>, <R as Query>::Item<'a>>

Source§

type ArchState = Or<<L as Query>::ArchState, <R as Query>::ArchState>

Source§

type State = (<L as Query>::State, <R as Query>::State)

Source§

impl<L, R> Query for Xor<L, R>
where L: Query, R: Query,

Source§

type Item<'a> = Xor<<L as Query>::Item<'a>, <R as Query>::Item<'a>>

Source§

type ArchState = Xor<<L as Query>::ArchState, <R as Query>::ArchState>

Source§

type State = (<L as Query>::State, <R as Query>::State)

Source§

impl<Q> Query for Not<Q>
where Q: Query,

Source§

type Item<'a> = Not<Q>

Source§

type ArchState = ()

Source§

type State = <Q as Query>::State

Source§

impl<Q> Query for Has<Q>
where Q: Query,

Source§

type Item<'a> = Has<Q>

Source§

type ArchState = bool

Source§

type State = <Q as Query>::State

Source§

impl<Q> Query for With<Q>
where Q: Query,

Source§

type Item<'a> = With<Q>

Source§

type ArchState = ()

Source§

type State = <Q as Query>::State