Trait rin::ecs::ChangesOrderedData[][src]

pub trait ChangesOrderedData<'a>: OrderedData<'a> {
    type SubStorage: StorageRef<'a>;
    pub fn extend_changes<F, E>(entities: &'a E, f: F)
    where
        E: EntitiesStorage,
        F: FnMut(Self::ComponentsRef) -> bool
;
pub unsafe fn storage_and_changes<E>(
        entities: &'a E
    ) -> Option<(Self::SubStorage, &'a mut HashSet<usize, RandomState>)>
    where
        E: EntitiesStorage
; }

Associated Types

type SubStorage: StorageRef<'a>[src]

Loading content...

Required methods

pub fn extend_changes<F, E>(entities: &'a E, f: F) where
    E: EntitiesStorage,
    F: FnMut(Self::ComponentsRef) -> bool
[src]

pub unsafe fn storage_and_changes<E>(
    entities: &'a E
) -> Option<(Self::SubStorage, &'a mut HashSet<usize, RandomState>)> where
    E: EntitiesStorage
[src]

Loading content...

Implementations on Foreign Types

impl<'a, U1, U2, U3, U4, U5, U6> ChangesOrderedData<'a> for (U1, U2, U3, U4, U5, U6) where
    U1: 'a + ChangesOrderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    U3: 'a + UnorderedData<'a>,
    U4: 'a + UnorderedData<'a>,
    U5: 'a + UnorderedData<'a>,
    U6: 'a + UnorderedData<'a>,
    <U1 as OrderedData<'a>>::Storage: FastIndexExt,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U6 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U1 as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<U3 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U3 as UnorderedData<'a>>::ComponentsRef,
    <<U4 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U4 as UnorderedData<'a>>::ComponentsRef,
    <<U5 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U5 as UnorderedData<'a>>::ComponentsRef,
    <<U6 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U6 as UnorderedData<'a>>::ComponentsRef,
    <<U1 as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <U1 as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef6<'a, <U1 as ChangesOrderedData<'a>>::SubStorage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage, <U4 as UnorderedData<'a>>::Storage, <U5 as UnorderedData<'a>>::Storage, <U6 as UnorderedData<'a>>::Storage>

impl<'a, UO, U1> ChangesOrderedData<'a> for (UO, U1) where
    U1: 'a + UnorderedData<'a>,
    UO: 'a + ChangesOrderedData<'a>,
    <UO as OrderedData<'a>>::Storage: FastIndexExt,
    <U1 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <UO as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U1 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U1 as UnorderedData<'a>>::ComponentsRef,
    <<UO as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <UO as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef2<'a, <UO as ChangesOrderedData<'a>>::SubStorage, <U1 as UnorderedData<'a>>::Storage>

impl<'a, U1, U2, U3, U4, U5> ChangesOrderedData<'a> for (U1, U2, U3, U4, U5) where
    U1: 'a + ChangesOrderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    U3: 'a + UnorderedData<'a>,
    U4: 'a + UnorderedData<'a>,
    U5: 'a + UnorderedData<'a>,
    <U1 as OrderedData<'a>>::Storage: FastIndexExt,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U1 as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<U3 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U3 as UnorderedData<'a>>::ComponentsRef,
    <<U4 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U4 as UnorderedData<'a>>::ComponentsRef,
    <<U5 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U5 as UnorderedData<'a>>::ComponentsRef,
    <<U1 as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <U1 as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef5<'a, <U1 as ChangesOrderedData<'a>>::SubStorage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage, <U4 as UnorderedData<'a>>::Storage, <U5 as UnorderedData<'a>>::Storage>

impl<'a, U1, U2, U3, U4, U5, U6, U7, U8> ChangesOrderedData<'a> for (U1, U2, U3, U4, U5, U6, U7, U8) where
    U8: 'a + UnorderedData<'a>,
    U1: 'a + ChangesOrderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    U3: 'a + UnorderedData<'a>,
    U4: 'a + UnorderedData<'a>,
    U5: 'a + UnorderedData<'a>,
    U6: 'a + UnorderedData<'a>,
    U7: 'a + UnorderedData<'a>,
    <U1 as OrderedData<'a>>::Storage: FastIndexExt,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U6 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U7 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U8 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U1 as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<U3 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U3 as UnorderedData<'a>>::ComponentsRef,
    <<U4 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U4 as UnorderedData<'a>>::ComponentsRef,
    <<U5 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U5 as UnorderedData<'a>>::ComponentsRef,
    <<U6 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U6 as UnorderedData<'a>>::ComponentsRef,
    <<U7 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U7 as UnorderedData<'a>>::ComponentsRef,
    <<U8 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U8 as UnorderedData<'a>>::ComponentsRef,
    <<U1 as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <U1 as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef8<'a, <U1 as ChangesOrderedData<'a>>::SubStorage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage, <U4 as UnorderedData<'a>>::Storage, <U5 as UnorderedData<'a>>::Storage, <U6 as UnorderedData<'a>>::Storage, <U7 as UnorderedData<'a>>::Storage, <U8 as UnorderedData<'a>>::Storage>

impl<'a, UO, U1, U2> ChangesOrderedData<'a> for (UO, U1, U2) where
    U1: 'a + UnorderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    UO: 'a + ChangesOrderedData<'a>,
    <UO as OrderedData<'a>>::Storage: FastIndexExt,
    <U1 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <UO as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U1 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U1 as UnorderedData<'a>>::ComponentsRef,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<UO as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <UO as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef3<'a, <UO as ChangesOrderedData<'a>>::SubStorage, <U1 as UnorderedData<'a>>::Storage, <U2 as UnorderedData<'a>>::Storage>

impl<'a, UO, U1, U2, U3> ChangesOrderedData<'a> for (UO, U1, U2, U3) where
    U1: 'a + UnorderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    U3: 'a + UnorderedData<'a>,
    UO: 'a + ChangesOrderedData<'a>,
    <UO as OrderedData<'a>>::Storage: FastIndexExt,
    <U1 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <UO as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U1 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U1 as UnorderedData<'a>>::ComponentsRef,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<U3 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U3 as UnorderedData<'a>>::ComponentsRef,
    <<UO as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <UO as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef4<'a, <UO as ChangesOrderedData<'a>>::SubStorage, <U1 as UnorderedData<'a>>::Storage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage>

impl<'a, U1, U2, U3, U4, U5, U6, U7> ChangesOrderedData<'a> for (U1, U2, U3, U4, U5, U6, U7) where
    U1: 'a + ChangesOrderedData<'a>,
    U2: 'a + UnorderedData<'a>,
    U3: 'a + UnorderedData<'a>,
    U4: 'a + UnorderedData<'a>,
    U5: 'a + UnorderedData<'a>,
    U6: 'a + UnorderedData<'a>,
    U7: 'a + UnorderedData<'a>,
    <U1 as OrderedData<'a>>::Storage: FastIndexExt,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U6 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U7 as UnorderedData<'a>>::Storage: StorageRef<'a>,
    <U1 as ChangesOrderedData<'a>>::SubStorage: StorageRef<'a>,
    <<U2 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U2 as UnorderedData<'a>>::ComponentsRef,
    <<U3 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U3 as UnorderedData<'a>>::ComponentsRef,
    <<U4 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U4 as UnorderedData<'a>>::ComponentsRef,
    <<U5 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U5 as UnorderedData<'a>>::ComponentsRef,
    <<U6 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U6 as UnorderedData<'a>>::ComponentsRef,
    <<U7 as UnorderedData<'a>>::Storage as StorageRef<'a>>::Component == <U7 as UnorderedData<'a>>::ComponentsRef,
    <<U1 as ChangesOrderedData<'a>>::SubStorage as StorageRef<'a>>::Component == <U1 as OrderedData<'a>>::ComponentsRef
[src]

type SubStorage = StorageRef7<'a, <U1 as ChangesOrderedData<'a>>::SubStorage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage, <U4 as UnorderedData<'a>>::Storage, <U5 as UnorderedData<'a>>::Storage, <U6 as UnorderedData<'a>>::Storage, <U7 as UnorderedData<'a>>::Storage>

Loading content...

Implementors

impl<'a, T> ChangesOrderedData<'a> for WriteAndParent<'a, T> where
    T: ComponentSend,
    <T as Component>::Storage: for<'b> HierarchicalStorage<'b, T>,
    WriteGuardRef<'b, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>: for<'b> IntoOrderedIterMut,
    WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>: IntoOrderedChangesIter<'a, T>,
    <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoOrderedChangesIter<'a, T>>::OrderedChangesItem == NodeRefMut<'a, T>, 
[src]

type SubStorage = ParentStorageWrite<'a, <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoOrderedChangesIter<'a, T>>::RawSubStorage, <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoOrderedChangesIter<'a, T>>::SubStorage, <WriteAndParent<'a, T> as OrderedData<'a>>::Components>

Loading content...