Skip to main content

WorldQuery

Trait WorldQuery 

Source
pub trait WorldQuery: 'static {
    type Item<'w>;

    // Required methods
    fn required_types() -> Vec<TypeId>;
    fn matches(arch: &Archetype) -> bool;
    unsafe fn fetch<'w>(arch: &'w Archetype, row: usize) -> Self::Item<'w>;
}
Expand description

Trait for types that describe how to fetch data from an archetype row.

Required Associated Types§

Source

type Item<'w>

The type yielded per entity.

Required Methods§

Source

fn required_types() -> Vec<TypeId>

Required component TypeIds (must all be present in the archetype).

Source

fn matches(arch: &Archetype) -> bool

true if arch satisfies this query.

Source

unsafe fn fetch<'w>(arch: &'w Archetype, row: usize) -> Self::Item<'w>

Fetches the item for row in arch.

§Safety

row must be valid; aliasing rules must be upheld by the caller.

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<A: WorldQuery> WorldQuery for (A,)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>,)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>(a: &'w Archetype, row: usize) -> (A::Item<'w>,)

Source§

impl<A: WorldQuery, B: WorldQuery> WorldQuery for (A, B)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>(a: &'w Archetype, row: usize) -> (A::Item<'w>, B::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery> WorldQuery for (A, B, C)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery, D: WorldQuery> WorldQuery for (A, B, C, D)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>, <D as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>, D::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery, D: WorldQuery, E: WorldQuery> WorldQuery for (A, B, C, D, E)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>, <D as WorldQuery>::Item<'w>, <E as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>, D::Item<'w>, E::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery, D: WorldQuery, E: WorldQuery, F: WorldQuery> WorldQuery for (A, B, C, D, E, F)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>, <D as WorldQuery>::Item<'w>, <E as WorldQuery>::Item<'w>, <F as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>, D::Item<'w>, E::Item<'w>, F::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery, D: WorldQuery, E: WorldQuery, F: WorldQuery, G: WorldQuery> WorldQuery for (A, B, C, D, E, F, G)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>, <D as WorldQuery>::Item<'w>, <E as WorldQuery>::Item<'w>, <F as WorldQuery>::Item<'w>, <G as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>, D::Item<'w>, E::Item<'w>, F::Item<'w>, G::Item<'w>)

Source§

impl<A: WorldQuery, B: WorldQuery, C: WorldQuery, D: WorldQuery, E: WorldQuery, F: WorldQuery, G: WorldQuery, H: WorldQuery> WorldQuery for (A, B, C, D, E, F, G, H)

Source§

type Item<'w> = (<A as WorldQuery>::Item<'w>, <B as WorldQuery>::Item<'w>, <C as WorldQuery>::Item<'w>, <D as WorldQuery>::Item<'w>, <E as WorldQuery>::Item<'w>, <F as WorldQuery>::Item<'w>, <G as WorldQuery>::Item<'w>, <H as WorldQuery>::Item<'w>)

Source§

fn required_types() -> Vec<TypeId>

Source§

fn matches(a: &Archetype) -> bool

Source§

unsafe fn fetch<'w>( a: &'w Archetype, row: usize, ) -> (A::Item<'w>, B::Item<'w>, C::Item<'w>, D::Item<'w>, E::Item<'w>, F::Item<'w>, G::Item<'w>, H::Item<'w>)

Implementors§