ArchetypeFilter

Trait ArchetypeFilter 

Source
pub trait ArchetypeFilter: QueryFilter { }
Expand description

A marker trait to indicate that the filter works at an archetype level.

This is needed to implement ExactSizeIterator for QueryIter that contains archetype-level filters.

The trait must only be implemented for filters where its corresponding QueryFilter::IS_ARCHETYPAL is true. As such, only the With and Without filters can implement the trait. Tuples and Or filters are automatically implemented with the trait only if its containing types also implement the same trait.

Added, Changed and Spawned work with entities, and therefore are not archetypal. As such they do not implement ArchetypeFilter.

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.

Implementations on Foreign Types§

Source§

impl ArchetypeFilter for ()

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter> ArchetypeFilter for (F0, F1)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter, F13: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13)

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter, F13: ArchetypeFilter, F14: ArchetypeFilter> ArchetypeFilter for (F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14)

Source§

impl<F: ArchetypeFilter> ArchetypeFilter for (F,)

Implementors§

Source§

impl ArchetypeFilter for Or<()>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter, F13: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13)>

Source§

impl<F0: ArchetypeFilter, F1: ArchetypeFilter, F2: ArchetypeFilter, F3: ArchetypeFilter, F4: ArchetypeFilter, F5: ArchetypeFilter, F6: ArchetypeFilter, F7: ArchetypeFilter, F8: ArchetypeFilter, F9: ArchetypeFilter, F10: ArchetypeFilter, F11: ArchetypeFilter, F12: ArchetypeFilter, F13: ArchetypeFilter, F14: ArchetypeFilter> ArchetypeFilter for Or<(F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14)>

Source§

impl<F: ArchetypeFilter> ArchetypeFilter for Or<(F,)>

Source§

impl<T: Component> ArchetypeFilter for With<T>

Source§

impl<T: Component> ArchetypeFilter for Without<T>