[][src]Trait legion_core::filter::EntityFilter

pub trait EntityFilter: Send + Clone {
    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, 'b>(
        &'a self,
        storage: &'b Storage
    ) -> FilterArchIter<'b, 'a, Self::ArchetypeFilter>;
fn iter_chunkset_indexes<'a, 'b>(
        &'a self,
        archetype: &'b ArchetypeData
    ) -> FilterChunkIter<'b, 'a, Self::ChunksetFilter>;
fn iter<'a, 'b>(
        &'a self,
        storage: &'b Storage
    ) -> FilterEntityIter<'b, 'a, Self::ArchetypeFilter, Self::ChunksetFilter>; }

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, 'b>(
    &'a self,
    storage: &'b Storage
) -> FilterArchIter<'b, 'a, Self::ArchetypeFilter>

Gets an iterator over all matching archetype indexes.

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

Gets an iterator over all matching chunkset indexes.

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

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,
    S: for<'a> Filter<ChunksetFilterData<'a>> + Clone,
    C: for<'a> Filter<ChunkFilterData<'a>> + Clone
[src]

type ArchetypeFilter = A

type ChunksetFilter = S

type ChunkFilter = C

Loading content...