[]Trait acute_ecs::filter::EntityFilter

pub trait EntityFilter: Clone + Send {
    type ArchetypeFilter: for<'a> Filter<ArchetypeFilterData<'a>> + Clone;
    type ChunksetFilter: for<'a> Filter<ChunksetFilterData<'a>> + Clone;
    type ChunkFilter: for<'a> Filter<ChunkFilterData<'a>> + Clone;
    fn init(&self);
fn filters(
        &self
    ) -> (&Self::ArchetypeFilter, &Self::ChunksetFilter, &Self::ChunkFilter);
fn into_filters(
        self
    ) -> (Self::ArchetypeFilter, Self::ChunksetFilter, Self::ChunkFilter);
fn iter_archetype_indexes(
        &'a self,
        storage: &'b Storage
    ) -> FilterArchIter<'b, 'a, Self::ArchetypeFilter>

Notable traits for FilterArchIter<'a, 'b, F>

impl<'a, 'b, F> Iterator for FilterArchIter<'a, 'b, F> where
    F: Filter<ArchetypeFilterData<'a>>, 
type Item = ArchetypeIndex;
;
fn iter_chunkset_indexes(
        &'a self,
        archetype: &'b ArchetypeData
    ) -> FilterChunkIter<'b, 'a, Self::ChunksetFilter>

Notable traits for FilterChunkIter<'a, 'b, F>

impl<'a, 'b, F> Iterator for FilterChunkIter<'a, 'b, F> where
    F: Filter<ChunksetFilterData<'a>>, 
type Item = SetIndex;
;
fn iter(
        &'a self,
        storage: &'b Storage
    ) -> FilterEntityIter<'b, 'a, Self::ArchetypeFilter, Self::ChunksetFilter>

Notable traits for FilterEntityIter<'a, 'b, Arch, Chunk>

impl<'a, 'b, Arch, Chunk> Iterator for FilterEntityIter<'a, 'b, Arch, Chunk> where
    Arch: Filter<ArchetypeFilterData<'a>>,
    Chunk: Filter<ChunksetFilterData<'a>>, 
type Item = (ArchetypeId, ChunkIndex);
; }

A type which combines both an archetype and a chunk filter.

Associated Types

Loading content...

Required methods

fn init(&self)

Initializes the entity filter for iteration.

fn filters(
    &self
) -> (&Self::ArchetypeFilter, &Self::ChunksetFilter, &Self::ChunkFilter)

Gets mutable references to both inner filters.

fn into_filters(
    self
) -> (Self::ArchetypeFilter, Self::ChunksetFilter, Self::ChunkFilter)

Converts self into both inner filters.

fn iter_archetype_indexes(
    &'a self,
    storage: &'b Storage
) -> FilterArchIter<'b, 'a, Self::ArchetypeFilter>

Notable traits for FilterArchIter<'a, 'b, F>

impl<'a, 'b, F> Iterator for FilterArchIter<'a, 'b, F> where
    F: Filter<ArchetypeFilterData<'a>>, 
type Item = ArchetypeIndex;

Gets an iterator over all matching archetype indexes.

fn iter_chunkset_indexes(
    &'a self,
    archetype: &'b ArchetypeData
) -> FilterChunkIter<'b, 'a, Self::ChunksetFilter>

Notable traits for FilterChunkIter<'a, 'b, F>

impl<'a, 'b, F> Iterator for FilterChunkIter<'a, 'b, F> where
    F: Filter<ChunksetFilterData<'a>>, 
type Item = SetIndex;

Gets an iterator over all matching chunkset indexes.

fn iter(
    &'a self,
    storage: &'b Storage
) -> FilterEntityIter<'b, 'a, Self::ArchetypeFilter, Self::ChunksetFilter>

Notable traits for FilterEntityIter<'a, 'b, Arch, Chunk>

impl<'a, 'b, Arch, Chunk> Iterator for FilterEntityIter<'a, 'b, Arch, Chunk> where
    Arch: Filter<ArchetypeFilterData<'a>>,
    Chunk: Filter<ChunksetFilterData<'a>>, 
type Item = (ArchetypeId, ChunkIndex);

Gets an iterator over all matching archetypes and chunksets.

Loading content...

Implementors

impl<A, S, C> EntityFilter for EntityFilterTuple<A, S, C> where
    A: for<'a> Filter<ArchetypeFilterData<'a>> + Clone,
    C: for<'a> Filter<ChunkFilterData<'a>> + Clone,
    S: for<'a> Filter<ChunksetFilterData<'a>> + Clone

type ArchetypeFilter = A

type ChunksetFilter = S

type ChunkFilter = C

Loading content...