[−]Trait acute_ecs::query::View
A type which can fetch a strongly-typed view of the data contained within a chunk.
Associated Types
Loading content...Required methods
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> Self::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> Self::Iter
Pulls data out of a chunk.
fn validate() -> bool
Validates that the view does not break any component borrowing rules.
fn validate_access(access: &ComponentAccess<'_>) -> bool
Determines if the given component access includes all permissions required by the view.
fn reads<T>() -> bool where
T: Component,
T: Component,
Determines if the view reads the specified data type.
fn writes<T>() -> bool where
T: Component,
T: Component,
Determines if the view writes to the specified data type.
fn requires_permissions() -> Permissions<ComponentTypeId>
Returns the set of permissions required by the view.
Implementations on Foreign Types
impl<'a, A, B, C, D, E, F, G, H> View<'a> for (A, B, C, D, E, F, G, H) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter, <H as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C> View<'a> for (A, B, C) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F> View<'a> for (A, B, C, D, E, F) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E> View<'a> for (A, B, C, D, E) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D> View<'a> for (A, B, C, D) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F, G, H, I, J, K> View<'a> for (A, B, C, D, E, F, G, H, I, J, K) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
K: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
K: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter, <H as View<'a>>::Iter, <I as View<'a>>::Iter, <J as View<'a>>::Iter, <K as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J, K) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J, K) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A> View<'a> for (A,) where
A: View<'a> + ViewElement,
A: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter,)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A,) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A,) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F, G, H, I, J> View<'a> for (A, B, C, D, E, F, G, H, I, J) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter, <H as View<'a>>::Iter, <I as View<'a>>::Iter, <J as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F, G, H, I, J, K, L> View<'a> for (A, B, C, D, E, F, G, H, I, J, K, L) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
K: View<'a> + ViewElement,
L: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
J: View<'a> + ViewElement,
K: View<'a> + ViewElement,
L: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter, <H as View<'a>>::Iter, <I as View<'a>>::Iter, <J as View<'a>>::Iter, <K as View<'a>>::Iter, <L as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J, K, L) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I, J, K, L) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B> View<'a> for (A, B) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F, G> View<'a> for (A, B, C, D, E, F, G) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, A, B, C, D, E, F, G, H, I> View<'a> for (A, B, C, D, E, F, G, H, I) where
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
A: View<'a> + ViewElement,
B: View<'a> + ViewElement,
C: View<'a> + ViewElement,
D: View<'a> + ViewElement,
E: View<'a> + ViewElement,
F: View<'a> + ViewElement,
G: View<'a> + ViewElement,
H: View<'a> + ViewElement,
I: View<'a> + ViewElement,
type Iter = Zip<(<A as View<'a>>::Iter, <B as View<'a>>::Iter, <C as View<'a>>::Iter, <D as View<'a>>::Iter, <E as View<'a>>::Iter, <F as View<'a>>::Iter, <G as View<'a>>::Iter, <H as View<'a>>::Iter, <I as View<'a>>::Iter)>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I) as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
chunk_index: ChunkIndex,
set_index: SetIndex
) -> <(A, B, C, D, E, F, G, H, I) as View<'a>>::Iter
fn validate() -> bool
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn reads<Data>() -> bool where
Data: Component,
Data: Component,
fn writes<Data>() -> bool where
Data: Component,
Data: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
Implementors
impl<'a, T> View<'a> for Read<T> where
T: Component,
T: Component,
type Iter = RefIter<'a, T, Iter<'a, T>>
fn fetch(
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Read<T> as View<'a>>::Iter
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Read<T> as View<'a>>::Iter
fn validate() -> bool
fn reads<D>() -> bool where
D: Component,
D: Component,
fn writes<D>() -> bool where
D: Component,
D: Component,
fn validate_access(access: &ComponentAccess<'_>) -> bool
fn requires_permissions() -> Permissions<ComponentTypeId>
impl<'a, T> View<'a> for Tagged<T> where
T: Tag,
T: Tag,
type Iter = Take<Repeat<&'a T>>
fn fetch(
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Tagged<T> as View<'a>>::Iter
archetype: &'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Tagged<T> as View<'a>>::Iter
fn validate() -> bool
fn reads<D>() -> bool where
D: Component,
D: Component,
fn writes<D>() -> bool where
D: Component,
D: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
fn validate_access(&ComponentAccess<'_>) -> bool
impl<'a, T> View<'a> for TryRead<T> where
T: Component,
T: Component,
type Iter = TryRefIter<'a, T, Iter<'a, T>>
fn fetch(
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <TryRead<T> as View<'a>>::Iter
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <TryRead<T> as View<'a>>::Iter
fn validate() -> bool
fn reads<D>() -> bool where
D: Component,
D: Component,
fn writes<D>() -> bool where
D: Component,
D: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
fn validate_access(access: &ComponentAccess<'_>) -> bool
impl<'a, T> View<'a> for TryWrite<T> where
T: Component,
T: Component,
type Iter = TryRefIterMut<'a, T, IterMut<'a, T>>
fn fetch(
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <TryWrite<T> as View<'a>>::Iter
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <TryWrite<T> as View<'a>>::Iter
fn validate() -> bool
fn reads<D>() -> bool where
D: Component,
D: Component,
fn writes<D>() -> bool where
D: Component,
D: Component,
fn requires_permissions() -> Permissions<ComponentTypeId>
fn validate_access(access: &ComponentAccess<'_>) -> bool
impl<'a, T> View<'a> for Write<T> where
T: Component,
T: Component,
type Iter = RefIterMut<'a, T, IterMut<'a, T>>
fn fetch(
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Write<T> as View<'a>>::Iter
&'a ArchetypeData,
chunk: &'a ComponentStorage,
ChunkIndex,
SetIndex
) -> <Write<T> as View<'a>>::Iter
fn validate() -> bool
fn reads<D>() -> bool where
D: Component,
D: Component,
fn writes<D>() -> bool where
D: Component,
D: Component,