pub trait QueryTuple: SealedQueryTuple {
type Fetch<'table>;
type Item<'item>;
type ParFetch<'table>: Send;
const ALL_REQUIRED: bool;
Show 17 methods
// Required methods
fn component_mask(world: &mut DynWorld) -> u64;
fn element_masks(world: &mut DynWorld) -> [u64; 8];
fn routing_match(world: &DynWorld) -> bool;
fn join_routes(worlds: &[DynWorld]) -> [Option<JoinRoute>; 8];
fn join_for_each<F: for<'item> FnMut(Entity, Self::Item<'item>)>(
driver: &mut DynWorld,
element_worlds: &[Option<&DynWorld>; 8],
filters: &JoinFilters<'_>,
f: F,
);
fn join_par_for_each<F: for<'item> Fn(Entity, Self::Item<'item>) + Send + Sync>(
driver: &mut DynWorld,
element_worlds: &[Option<&DynWorld>; 8],
filters: &JoinFilters<'_>,
f: F,
);
fn fetch<'table>(
table_mask: u64,
columns: &'table mut [ColumnSlot],
element_masks: &[u64; 8],
current_tick: u32,
) -> Self::Fetch<'table>;
fn changed_newer(
fetch: &Self::Fetch<'_>,
index: usize,
element_masks: &[u64; 8],
changed_mask: u64,
since_tick: u32,
) -> bool;
fn item<'fetch>(
fetch: &'fetch mut Self::Fetch<'_>,
index: usize,
) -> Self::Item<'fetch>;
fn stamp_peaks(fetch: &mut Self::Fetch<'_>);
fn par_fetch<'table>(
table_mask: u64,
columns: &'table mut [ColumnSlot],
element_masks: &[u64; 8],
current_tick: u32,
) -> Self::ParFetch<'table>;
fn par_split<'table>(
fetch: Self::ParFetch<'table>,
mid: usize,
) -> (Self::ParFetch<'table>, Self::ParFetch<'table>);
fn par_item<'fetch>(
fetch: &'fetch mut Self::ParFetch<'_>,
index: usize,
) -> Self::Item<'fetch>;
unsafe fn par_item_unchecked<'fetch>(
fetch: &'fetch mut Self::ParFetch<'_>,
index: usize,
) -> Self::Item<'fetch>;
fn mark_changed_all(fetch: &mut Self::Fetch<'_>);
fn item_marked<'fetch>(
fetch: &'fetch mut Self::Fetch<'_>,
index: usize,
) -> Self::Item<'fetch>;
fn fast_for_each<FN>(
fetch: Self::ParFetch<'_>,
entities: &[Entity],
f: &mut FN,
)
where FN: for<'item> FnMut(Entity, Self::Item<'item>);
}Required Associated Constants§
const ALL_REQUIRED: bool
Required Associated Types§
Required Methods§
fn component_mask(world: &mut DynWorld) -> u64
fn element_masks(world: &mut DynWorld) -> [u64; 8]
fn routing_match(world: &DynWorld) -> bool
fn join_routes(worlds: &[DynWorld]) -> [Option<JoinRoute>; 8]
fn join_for_each<F: for<'item> FnMut(Entity, Self::Item<'item>)>( driver: &mut DynWorld, element_worlds: &[Option<&DynWorld>; 8], filters: &JoinFilters<'_>, f: F, )
fn join_par_for_each<F: for<'item> Fn(Entity, Self::Item<'item>) + Send + Sync>( driver: &mut DynWorld, element_worlds: &[Option<&DynWorld>; 8], filters: &JoinFilters<'_>, f: F, )
fn fetch<'table>( table_mask: u64, columns: &'table mut [ColumnSlot], element_masks: &[u64; 8], current_tick: u32, ) -> Self::Fetch<'table>
fn changed_newer( fetch: &Self::Fetch<'_>, index: usize, element_masks: &[u64; 8], changed_mask: u64, since_tick: u32, ) -> bool
fn item<'fetch>( fetch: &'fetch mut Self::Fetch<'_>, index: usize, ) -> Self::Item<'fetch>
fn stamp_peaks(fetch: &mut Self::Fetch<'_>)
fn par_fetch<'table>( table_mask: u64, columns: &'table mut [ColumnSlot], element_masks: &[u64; 8], current_tick: u32, ) -> Self::ParFetch<'table>
fn par_split<'table>( fetch: Self::ParFetch<'table>, mid: usize, ) -> (Self::ParFetch<'table>, Self::ParFetch<'table>)
fn par_item<'fetch>( fetch: &'fetch mut Self::ParFetch<'_>, index: usize, ) -> Self::Item<'fetch>
Sourceunsafe fn par_item_unchecked<'fetch>(
fetch: &'fetch mut Self::ParFetch<'_>,
index: usize,
) -> Self::Item<'fetch>
unsafe fn par_item_unchecked<'fetch>( fetch: &'fetch mut Self::ParFetch<'_>, index: usize, ) -> Self::Item<'fetch>
Row access without bounds checks, used by the raw_storage fast path.
§Safety
index must be less than every fetched column’s length.
fn mark_changed_all(fetch: &mut Self::Fetch<'_>)
fn item_marked<'fetch>( fetch: &'fetch mut Self::Fetch<'_>, index: usize, ) -> Self::Item<'fetch>
fn fast_for_each<FN>(fetch: Self::ParFetch<'_>, entities: &[Entity], f: &mut FN)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".