Skip to main content

ContiguousQueryData

Trait ContiguousQueryData 

pub trait ContiguousQueryData: ArchetypeQueryData + IterQueryData {
    type Contiguous<'w, 's>;

    // Required method
    unsafe fn fetch_contiguous<'w, 's>(
        state: &'s Self::State,
        fetch: &mut Self::Fetch<'w>,
        entities: &'w [Entity],
    ) -> Self::Contiguous<'w, 's>;
}
Expand description

A QueryData which allows getting a direct access to contiguous chunks of components’ values, which may be used to apply simd-operations.

Contiguous iteration may be done via:

Required Associated Types§

type Contiguous<'w, 's>

Item returned by ContiguousQueryData::fetch_contiguous. Represents a contiguous chunk of memory.

Required Methods§

unsafe fn fetch_contiguous<'w, 's>( state: &'s Self::State, fetch: &mut Self::Fetch<'w>, entities: &'w [Entity], ) -> Self::Contiguous<'w, 's>

Fetch ContiguousQueryData::Contiguous which represents a contiguous chunk of memory (e.g., an array) in the current Table. This must always be called after WorldQuery::set_table.

§Safety
  • Must always be called after WorldQuery::set_table.
  • entities’s length must match the length of the set table.
  • entities must match the entities of the set table.
  • There must not be simultaneous conflicting component access registered in update_component_access.

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§

§

impl ContiguousQueryData for ()

§

type Contiguous<'w, 's> = ()

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <() as WorldQuery>::State, fetch: &mut <() as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <() as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1> ContiguousQueryData for (F0, F1)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1) as WorldQuery>::State, fetch: &mut <(F0, F1) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2> ContiguousQueryData for (F0, F1, F2)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2) as WorldQuery>::State, fetch: &mut <(F0, F1, F2) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3> ContiguousQueryData for (F0, F1, F2, F3)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>, <F3 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2, F3) as WorldQuery>::State, fetch: &mut <(F0, F1, F2, F3) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2, F3) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3, F4> ContiguousQueryData for (F0, F1, F2, F3, F4)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>, <F3 as ContiguousQueryData>::Contiguous<'w, 's>, <F4 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2, F3, F4) as WorldQuery>::State, fetch: &mut <(F0, F1, F2, F3, F4) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2, F3, F4) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3, F4, F5> ContiguousQueryData for (F0, F1, F2, F3, F4, F5)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>, <F3 as ContiguousQueryData>::Contiguous<'w, 's>, <F4 as ContiguousQueryData>::Contiguous<'w, 's>, <F5 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2, F3, F4, F5) as WorldQuery>::State, fetch: &mut <(F0, F1, F2, F3, F4, F5) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2, F3, F4, F5) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3, F4, F5, F6> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>, <F3 as ContiguousQueryData>::Contiguous<'w, 's>, <F4 as ContiguousQueryData>::Contiguous<'w, 's>, <F5 as ContiguousQueryData>::Contiguous<'w, 's>, <F6 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2, F3, F4, F5, F6) as WorldQuery>::State, fetch: &mut <(F0, F1, F2, F3, F4, F5, F6) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2, F3, F4, F5, F6) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7)

§

type Contiguous<'w, 's> = (<F0 as ContiguousQueryData>::Contiguous<'w, 's>, <F1 as ContiguousQueryData>::Contiguous<'w, 's>, <F2 as ContiguousQueryData>::Contiguous<'w, 's>, <F3 as ContiguousQueryData>::Contiguous<'w, 's>, <F4 as ContiguousQueryData>::Contiguous<'w, 's>, <F5 as ContiguousQueryData>::Contiguous<'w, 's>, <F6 as ContiguousQueryData>::Contiguous<'w, 's>, <F7 as ContiguousQueryData>::Contiguous<'w, 's>)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F0, F1, F2, F3, F4, F5, F6, F7) as WorldQuery>::State, fetch: &mut <(F0, F1, F2, F3, F4, F5, F6, F7) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F0, F1, F2, F3, F4, F5, F6, F7) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13)

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14> ContiguousQueryData for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14)

§

impl<F> ContiguousQueryData for (F,)

§

type Contiguous<'w, 's> = (<F as ContiguousQueryData>::Contiguous<'w, 's>,)

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <(F,) as WorldQuery>::State, fetch: &mut <(F,) as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <(F,) as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<T> ContiguousQueryData for Option<T>

§

type Contiguous<'w, 's> = Option<<T as ContiguousQueryData>::Contiguous<'w, 's>>

§

unsafe fn fetch_contiguous<'w, 's>( state: &'s <Option<T> as WorldQuery>::State, fetch: &mut <Option<T> as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <Option<T> as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<T> ContiguousQueryData for &T
where T: Component,

§

type Contiguous<'w, 's> = &'w [T]

§

unsafe fn fetch_contiguous<'w, 's>( _state: &'s <&T as WorldQuery>::State, fetch: &mut <&T as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <&T as ContiguousQueryData>::Contiguous<'w, 's>

§

impl<T> ContiguousQueryData for &mut T
where T: Component<Mutability = Mutable>,

§

type Contiguous<'w, 's> = ContiguousMut<'w, T>

§

unsafe fn fetch_contiguous<'w, 's>( _state: &'s <&mut T as WorldQuery>::State, fetch: &mut <&mut T as WorldQuery>::Fetch<'w>, entities: &'w [Entity], ) -> <&mut T as ContiguousQueryData>::Contiguous<'w, 's>

Implementors§

§

impl ContiguousQueryData for AnyOf<()>

§

type Contiguous<'w, 's> = ()

§

impl ContiguousQueryData for Entity

§

type Contiguous<'w, 's> = &'w [Entity]

§

impl<'__w, T> ContiguousQueryData for Mut<'__w, T>
where T: Component<Mutability = Mutable>,

§

type Contiguous<'w, 's> = ContiguousMut<'w, T>

§

impl<F0, F1> ContiguousQueryData for AnyOf<(F0, F1)>

§

type Contiguous<'w, 's> = (Option<<F0 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F1 as ContiguousQueryData>::Contiguous<'w, 's>>)

§

impl<F0, F1, F2> ContiguousQueryData for AnyOf<(F0, F1, F2)>

§

type Contiguous<'w, 's> = (Option<<F0 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F1 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F2 as ContiguousQueryData>::Contiguous<'w, 's>>)

§

impl<F0, F1, F2, F3> ContiguousQueryData for AnyOf<(F0, F1, F2, F3)>

§

type Contiguous<'w, 's> = (Option<<F0 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F1 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F2 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F3 as ContiguousQueryData>::Contiguous<'w, 's>>)

§

impl<F0, F1, F2, F3, F4> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4)>

§

type Contiguous<'w, 's> = (Option<<F0 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F1 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F2 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F3 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F4 as ContiguousQueryData>::Contiguous<'w, 's>>)

§

impl<F0, F1, F2, F3, F4, F5> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5)>

§

type Contiguous<'w, 's> = (Option<<F0 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F1 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F2 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F3 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F4 as ContiguousQueryData>::Contiguous<'w, 's>>, Option<<F5 as ContiguousQueryData>::Contiguous<'w, 's>>)

§

impl<F0, F1, F2, F3, F4, F5, F6> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13)>

§

impl<F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14> ContiguousQueryData for AnyOf<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14)>

§

impl<F> ContiguousQueryData for AnyOf<(F,)>

§

type Contiguous<'w, 's> = (Option<<F as ContiguousQueryData>::Contiguous<'w, 's>>,)

§

impl<T> ContiguousQueryData for Has<T>
where T: Component,

§

type Contiguous<'w, 's> = bool

§

impl<T> ContiguousQueryData for Ref<'_, T>
where T: Component,

§

type Contiguous<'w, 's> = ContiguousRef<'w, T>