Trait rinecs::operators::ChangesData[][src]

pub trait ChangesData<'a>: UnorderedData<'a> {
    type SubStorage;
    fn extend_changes<F>(entities: &'a Entities<'_>, f: F)
    where
        F: FnMut(Self::ComponentsRef) -> bool
;
unsafe fn storage_and_changes(
        entities: &'a Entities<'_>
    ) -> Option<(Self::SubStorage, &'a mut HashSet<usize>)>; }

Associated Types

type SubStorage[src]

Loading content...

Required methods

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

unsafe fn storage_and_changes(
    entities: &'a Entities<'_>
) -> Option<(Self::SubStorage, &'a mut HashSet<usize>)>
[src]

Loading content...

Implementations on Foreign Types

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

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

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

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

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

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

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

type SubStorage = StorageRef5<'a, <U1 as ChangesData<'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> ChangesData<'a> for (U1, U2, U3, U4, U5, U6) where
    U1: 'a + ChangesData<'a> + UnorderedData<'a>,
    <U1 as UnorderedData<'a>>::Storage: FastIndexExt,
    U2: 'a + UnorderedData<'a>,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U2::ComponentsRef>,
    U3: 'a + UnorderedData<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U3::ComponentsRef>,
    U4: 'a + UnorderedData<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U4::ComponentsRef>,
    U5: 'a + UnorderedData<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U5::ComponentsRef>,
    U6: 'a + UnorderedData<'a>,
    <U6 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U6::ComponentsRef>,
    <U1 as ChangesData<'a>>::SubStorage: StorageRef<'a, Component = U1::ComponentsRef>, 
[src]

type SubStorage = StorageRef6<'a, <U1 as ChangesData<'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, U1, U2, U3, U4, U5, U6, U7> ChangesData<'a> for (U1, U2, U3, U4, U5, U6, U7) where
    U1: 'a + ChangesData<'a> + UnorderedData<'a>,
    <U1 as UnorderedData<'a>>::Storage: FastIndexExt,
    U2: 'a + UnorderedData<'a>,
    <U2 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U2::ComponentsRef>,
    U3: 'a + UnorderedData<'a>,
    <U3 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U3::ComponentsRef>,
    U4: 'a + UnorderedData<'a>,
    <U4 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U4::ComponentsRef>,
    U5: 'a + UnorderedData<'a>,
    <U5 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U5::ComponentsRef>,
    U6: 'a + UnorderedData<'a>,
    <U6 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U6::ComponentsRef>,
    U7: 'a + UnorderedData<'a>,
    <U7 as UnorderedData<'a>>::Storage: StorageRef<'a, Component = U7::ComponentsRef>,
    <U1 as ChangesData<'a>>::SubStorage: StorageRef<'a, Component = U1::ComponentsRef>, 
[src]

type SubStorage = StorageRef7<'a, <U1 as ChangesData<'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>

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

type SubStorage = StorageRef8<'a, <U1 as ChangesData<'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>

Loading content...

Implementors

impl<'a, T: ComponentSend> ChangesData<'a> for Write<'a, T> where
    <T as Component>::Storage: Storage<'b, T>,
    WriteGuardRef<'b, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>: IntoIterMut,
    WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>: IntoChangesIter<'a, T, ChangesItem = <<T as Component>::Storage as Storage<'a, T>>::GetMut>, 
[src]

type SubStorage = StorageWrite<'a, <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoChangesIter<'a, T>>::RawSubStorage, Self::Components, <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoChangesIter<'a, T>>::SubStorage>

Loading content...