Struct legion::query::ChunkView [−][src]
Provides access to slices of components for entities which have the same component layout.
A single index in any of the slices contained in a chunk belong to the same entity.
Implementations
impl<'a, F: Fetch> ChunkView<'a, F>
[src]
pub fn archetype(&self) -> &Archetype
[src]
Returns the archetype that all entities in the chunk belong to.
pub fn component_slice<T: Component>(&self) -> Option<&[T]>
[src]
Returns a slice of components.
May return None
if the chunk’s view does not declare access to the component type.
pub fn component_slice_mut<T: Component>(&mut self) -> Option<&mut [T]>
[src]
Returns a mutable slice of components.
May return None
if the chunk’s view does not declare access to the component type.
pub fn into_components(self) -> F::Data
[src]
Converts the chunk into a tuple of its inner slices.
Examples
let mut query = <(Entity, Read<A>, Write<B>, TryRead<C>, TryWrite<D>)>::query(); for chunk in query.iter_chunks_mut(&mut world) { let slices: (&[Entity], &[A], &mut [B], Option<&[C]>, Option<&mut [D]>) = chunk.into_components(); }
pub fn get_components(&self) -> F::Data where
F: ReadOnlyFetch,
[src]
F: ReadOnlyFetch,
Converts the chunk into a tuple of its inner slices.
Only usable with views whose elements are all read-only.
Examples
let mut query = <(Entity, Read<A>, TryRead<B>)>::query(); for chunk in query.iter_chunks_mut(&mut world) { let slices: (&[Entity], &[A], Option<&[B]>) = chunk.get_components(); }
pub fn into_iter_entities(
self
) -> impl Iterator<Item = (Entity, <F as IntoIndexableIter>::Item)> + 'a where
<F as IntoIndexableIter>::IntoIter: 'a,
[src]
self
) -> impl Iterator<Item = (Entity, <F as IntoIndexableIter>::Item)> + 'a where
<F as IntoIndexableIter>::IntoIter: 'a,
Converts the chunk into an iterator which yields tuples of (Entity, components)
.
Trait Implementations
impl<'a, F: Fetch> IntoIterator for ChunkView<'a, F>
[src]
type IntoIter = <F as IntoIndexableIter>::IntoIter
Which kind of iterator are we turning this into?
type Item = <F as IntoIndexableIter>::Item
The type of the elements being iterated over.
fn into_iter(self) -> Self::IntoIter
[src]
impl<'a, F: Fetch> IntoParallelIterator for ChunkView<'a, F>
[src]
type Iter = Par<<F as IntoIndexableIter>::IntoIter>
The parallel iterator type that will be created.
type Item = <<F as IntoIndexableIter>::IntoIter as TrustedRandomAccess>::Item
The type of item that the parallel iterator will produce.
fn into_par_iter(self) -> Self::Iter
[src]
Auto Trait Implementations
impl<'a, F> !RefUnwindSafe for ChunkView<'a, F>
impl<'a, F> Send for ChunkView<'a, F>
impl<'a, F> Sync for ChunkView<'a, F>
impl<'a, F> Unpin for ChunkView<'a, F> where
F: Unpin,
F: Unpin,
impl<'a, F> !UnwindSafe for ChunkView<'a, F>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
pub fn as_any(&self) -> &(dyn Any + 'static)
[src]
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,