Trait rinecs::operators::OrderedData[][src]

pub trait OrderedData<'a> {
    type Iter;
    type Components;
    type ComponentsRef;
    type Storage;
    fn query_mask<E: EntitiesStorage>(entities: &E) -> Bitmask;
fn into_iter<E: EntitiesStorage>(entities: &'a E) -> Self::Iter;
fn storage<E: EntitiesStorage>(entities: &'a E) -> Option<Self::Storage>;
fn ordered_ids<S: FastIndexExt, E: EntitiesStorage>(
        entities: &'a E,
        query_mask: Bitmask,
        unordered_storage: &S
    ) -> OrderedIndexGuard<'a>; }

Associated Types

type Iter[src]

type Components[src]

type ComponentsRef[src]

type Storage[src]

Loading content...

Required methods

fn query_mask<E: EntitiesStorage>(entities: &E) -> Bitmask[src]

fn into_iter<E: EntitiesStorage>(entities: &'a E) -> Self::Iter[src]

fn storage<E: EntitiesStorage>(entities: &'a E) -> Option<Self::Storage>[src]

fn ordered_ids<S: FastIndexExt, E: EntitiesStorage>(
    entities: &'a E,
    query_mask: Bitmask,
    unordered_storage: &S
) -> OrderedIndexGuard<'a>
[src]

Loading content...

Implementations on Foreign Types

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

type Iter = IntoITer2<'a, <UO as OrderedData<'a>>::Storage, <U1 as UnorderedData<'a>>::Storage, <U1 as UnorderedData<'a>>::Storage>

type Components = (<UO as OrderedData<'a>>::Components, <U1 as UnorderedData<'a>>::Components)

type ComponentsRef = (<UO as OrderedData<'a>>::ComponentsRef, <U1 as UnorderedData<'a>>::ComponentsRef)

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

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

type Iter = IntoITer3<'a, <UO as OrderedData<'a>>::Storage, <(U1, U2) as UnorderedData<'a>>::Storage, <U1 as UnorderedData<'a>>::Storage, <U2 as UnorderedData<'a>>::Storage>

type Components = (<UO as OrderedData<'a>>::Components, <U1 as UnorderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components)

type ComponentsRef = (<UO as OrderedData<'a>>::ComponentsRef, <U1 as UnorderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef)

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

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

type Iter = IntoITer4<'a, <UO as OrderedData<'a>>::Storage, <(U1, U2, U3) as UnorderedData<'a>>::Storage, <U1 as UnorderedData<'a>>::Storage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage>

type Components = (<UO as OrderedData<'a>>::Components, <U1 as UnorderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components, <U3 as UnorderedData<'a>>::Components)

type ComponentsRef = (<UO as OrderedData<'a>>::ComponentsRef, <U1 as UnorderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef, <U3 as UnorderedData<'a>>::ComponentsRef)

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

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

type Iter = IntoITer5<'a, <U1 as OrderedData<'a>>::Storage, <(U2, U3, U4, U5) as UnorderedData<'a>>::Storage, <U2 as UnorderedData<'a>>::Storage, <U3 as UnorderedData<'a>>::Storage, <U4 as UnorderedData<'a>>::Storage, <U5 as UnorderedData<'a>>::Storage>

type Components = (<U1 as OrderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components, <U3 as UnorderedData<'a>>::Components, <U4 as UnorderedData<'a>>::Components, <U5 as UnorderedData<'a>>::Components)

type ComponentsRef = (<U1 as OrderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef, <U3 as UnorderedData<'a>>::ComponentsRef, <U4 as UnorderedData<'a>>::ComponentsRef, <U5 as UnorderedData<'a>>::ComponentsRef)

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

type Iter = IntoITer6<'a, <U1 as OrderedData<'a>>::Storage, <(U2, U3, U4, U5, U6) as UnorderedData<'a>>::Storage, <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>

type Components = (<U1 as OrderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components, <U3 as UnorderedData<'a>>::Components, <U4 as UnorderedData<'a>>::Components, <U5 as UnorderedData<'a>>::Components, <U6 as UnorderedData<'a>>::Components)

type ComponentsRef = (<U1 as OrderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef, <U3 as UnorderedData<'a>>::ComponentsRef, <U4 as UnorderedData<'a>>::ComponentsRef, <U5 as UnorderedData<'a>>::ComponentsRef, <U6 as UnorderedData<'a>>::ComponentsRef)

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

type Iter = IntoITer7<'a, <U1 as OrderedData<'a>>::Storage, <(U2, U3, U4, U5, U6, U7) as UnorderedData<'a>>::Storage, <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>

type Components = (<U1 as OrderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components, <U3 as UnorderedData<'a>>::Components, <U4 as UnorderedData<'a>>::Components, <U5 as UnorderedData<'a>>::Components, <U6 as UnorderedData<'a>>::Components, <U7 as UnorderedData<'a>>::Components)

type ComponentsRef = (<U1 as OrderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef, <U3 as UnorderedData<'a>>::ComponentsRef, <U4 as UnorderedData<'a>>::ComponentsRef, <U5 as UnorderedData<'a>>::ComponentsRef, <U6 as UnorderedData<'a>>::ComponentsRef, <U7 as UnorderedData<'a>>::ComponentsRef)

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

type Iter = IntoITer8<'a, <U1 as OrderedData<'a>>::Storage, <(U2, U3, U4, U5, U6, U7, U8) as UnorderedData<'a>>::Storage, <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>

type Components = (<U1 as OrderedData<'a>>::Components, <U2 as UnorderedData<'a>>::Components, <U3 as UnorderedData<'a>>::Components, <U4 as UnorderedData<'a>>::Components, <U5 as UnorderedData<'a>>::Components, <U6 as UnorderedData<'a>>::Components, <U7 as UnorderedData<'a>>::Components, <U8 as UnorderedData<'a>>::Components)

type ComponentsRef = (<U1 as OrderedData<'a>>::ComponentsRef, <U2 as UnorderedData<'a>>::ComponentsRef, <U3 as UnorderedData<'a>>::ComponentsRef, <U4 as UnorderedData<'a>>::ComponentsRef, <U5 as UnorderedData<'a>>::ComponentsRef, <U6 as UnorderedData<'a>>::ComponentsRef, <U7 as UnorderedData<'a>>::ComponentsRef, <U8 as UnorderedData<'a>>::ComponentsRef)

type Storage = StorageRef8<'a, <U1 as OrderedData<'a>>::Storage, <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, Ref> OrderedData<'a> for ReadAndParentRef<'a, T, Ref> where
    <T as Component>::Storage: HierarchicalStorage<'b, T>,
    ReadGuardRef<'b, <T as Component>::Storage>: IntoHierarchicalIter<'b, T>,
    T: ComponentSend,
    Ref: UnorderedData<'a>, 
[src]

type Iter = ReadAndParentRefIter<'a, ReadGuardRef<'a, T::Storage>, T, Ref, Ref::Storage>

type Components = T

type ComponentsRef = (&'a T, Option<<Ref as UnorderedData<'a>>::ComponentsRef>)

type Storage = ParentStorageReadRef<'a, ReadGuardRef<'a, T::Storage>, T, Ref, Ref::Storage>

impl<'a, T: Component> OrderedData<'a> for WriteAndParent<'a, T> where
    <T as Component>::Storage: HierarchicalStorage<'b, T>,
    WriteGuardRef<'b, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>: IntoOrderedIterMut
[src]

type Iter = WriteAndParentIter<'a, T, <WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard> as IntoOrderedIterMut>::OrderedIterMut>

type Components = T

type ComponentsRef = (&'a mut T, Option<&'a T>)

type Storage = ParentStorageWrite<'a, <T as Component>::Storage, WriteGuardRef<'a, <T as Component>::Storage, <T as Component>::MutStorageCacheGuard>, Self::Components>

impl<'a, T: ComponentSend> OrderedData<'a> for ReadAndParent<'a, T> where
    <T as Component>::Storage: HierarchicalStorage<'b, T>,
    ReadGuardRef<'b, <T as Component>::Storage>: IntoHierarchicalIter<'b, T>, 
[src]

type Iter = ReadAndParentIter<'a, T>

type Components = T

type ComponentsRef = (&'a T, Option<&'a T>)

type Storage = ParentStorageRead<'a, <T as Component>::Storage, ReadGuardRef<'a, <T as Component>::Storage>, Self::Components>

Loading content...