pub trait ReadQueryTuple: QueryTuple {
type ReadFetch<'table>: Copy;
// Required methods
fn lookup_masks(world: &DynWorld) -> Option<([u64; 8], u64)>;
fn read_fetch<'table>(
table_mask: u64,
columns: &'table [ColumnSlot],
element_masks: &[u64; 8],
) -> Self::ReadFetch<'table>;
fn read_changed_newer(
fetch: Self::ReadFetch<'_>,
index: usize,
element_masks: &[u64; 8],
changed_mask: u64,
since_tick: u32,
) -> bool;
fn read_added_newer(
fetch: Self::ReadFetch<'_>,
index: usize,
element_masks: &[u64; 8],
added_mask: u64,
since_tick: u32,
) -> bool;
fn read_item<'table>(
fetch: Self::ReadFetch<'table>,
index: usize,
) -> Self::Item<'table>;
fn join_lookup(
driver: &DynWorld,
element_worlds: &[Option<&DynWorld>; 8],
) -> Option<([u64; 8], u64)>;
fn join_read_fetch<'table>(
table_mask: u64,
columns: &'table [ColumnSlot],
element_masks: &[u64; 8],
element_worlds: &[Option<&DynWorld>; 8],
) -> Self::ReadFetch<'table>;
fn join_read_item<'world>(
fetch: Self::ReadFetch<'world>,
element_worlds: &[Option<&'world DynWorld>; 8],
entity: Entity,
index: usize,
) -> Option<Self::Item<'world>>;
}Expand description
The read-only half of QueryTuple, tuples of &T and Option<&T>
only. Resolves masks without registering, fetches through shared borrows,
and hands out items that borrow the world, so results can outlive the
iteration.
Required Associated Types§
Required Methods§
fn lookup_masks(world: &DynWorld) -> Option<([u64; 8], u64)>
fn read_fetch<'table>( table_mask: u64, columns: &'table [ColumnSlot], element_masks: &[u64; 8], ) -> Self::ReadFetch<'table>
fn read_changed_newer( fetch: Self::ReadFetch<'_>, index: usize, element_masks: &[u64; 8], changed_mask: u64, since_tick: u32, ) -> bool
fn read_added_newer( fetch: Self::ReadFetch<'_>, index: usize, element_masks: &[u64; 8], added_mask: u64, since_tick: u32, ) -> bool
fn read_item<'table>( fetch: Self::ReadFetch<'table>, index: usize, ) -> Self::Item<'table>
fn join_lookup( driver: &DynWorld, element_worlds: &[Option<&DynWorld>; 8], ) -> Option<([u64; 8], u64)>
fn join_read_fetch<'table>( table_mask: u64, columns: &'table [ColumnSlot], element_masks: &[u64; 8], element_worlds: &[Option<&DynWorld>; 8], ) -> Self::ReadFetch<'table>
fn join_read_item<'world>( fetch: Self::ReadFetch<'world>, element_worlds: &[Option<&'world DynWorld>; 8], entity: Entity, index: usize, ) -> Option<Self::Item<'world>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".