Trait ComponentLayout

Source
pub trait ComponentLayout: Sized {
    type Filter: for<'a> Filter<ArchetypeFilterData<'a>>;

    // Required methods
    fn get_filter(&mut self) -> &mut Self::Filter;
    fn tailor_archetype(&self, archetype: &mut ArchetypeDescription);
}
Expand description

Describes the types of a set of components attached to an entity.

Required Associated Types§

Source

type Filter: for<'a> Filter<ArchetypeFilterData<'a>>

A filter type which filters archetypes to an exact match with this layout.

Required Methods§

Source

fn get_filter(&mut self) -> &mut Self::Filter

Gets the archetype filter for this layout.

Source

fn tailor_archetype(&self, archetype: &mut ArchetypeDescription)

Modifies an archetype description to include the components described by this layout.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<I: Iterator<Item = Entity> + FusedIterator, C: ComponentSource> ComponentLayout for PreallocComponentSource<I, C>

Source§

impl<UWU> ComponentLayout for ComponentTupleSet<(), UWU>
where UWU: ExactSizeIterator + Iterator<Item = ()>,

Source§

impl<UWU, A> ComponentLayout for ComponentTupleSet<(A,), UWU>
where UWU: ExactSizeIterator + Iterator<Item = (A,)>, A: Component,

Source§

impl<UWU, A, B> ComponentLayout for ComponentTupleSet<(A, B), UWU>
where UWU: ExactSizeIterator + Iterator<Item = (A, B)>, A: Component, B: Component,

Source§

impl<UWU, A, B, C> ComponentLayout for ComponentTupleSet<(A, B, C), UWU>

Source§

impl<UWU, A, B, C, D> ComponentLayout for ComponentTupleSet<(A, B, C, D), UWU>

Source§

impl<UWU, A, B, C, D, E> ComponentLayout for ComponentTupleSet<(A, B, C, D, E), UWU>

Source§

impl<UWU, A, B, C, D, E, F> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y), UWU>

Source§

impl<UWU, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z> ComponentLayout for ComponentTupleSet<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z), UWU>