Trait rin::ecs::operators::SafeIter[][src]

pub unsafe trait SafeIter<'a> { }

Trait to implement by storages that can safely implment iterator. For example Ref and RefN can’t cause it could give simultaneous mutable access to the same entry twice

Implementations on Foreign Types

impl<'a, U1, U2, U3, U4, U5, U6> SafeIter<'a> for (U1, U2, U3, U4, U5, U6) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>,
    U4: SafeIter<'a>,
    U5: SafeIter<'a>,
    U6: SafeIter<'a>, 
[src]

impl<'a, U1, U2, U3, U4, U5> SafeIter<'a> for (U1, U2, U3, U4, U5) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>,
    U4: SafeIter<'a>,
    U5: SafeIter<'a>, 
[src]

impl<'a, U1, U2, U3, U4, U5, U6, U7, U8> SafeIter<'a> for (U1, U2, U3, U4, U5, U6, U7, U8) where
    U8: SafeIter<'a>,
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>,
    U4: SafeIter<'a>,
    U5: SafeIter<'a>,
    U6: SafeIter<'a>,
    U7: SafeIter<'a>, 
[src]

impl<'a, U1, U2, U3, U4> SafeIter<'a> for (U1, U2, U3, U4) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>,
    U4: SafeIter<'a>, 
[src]

impl<'a, U1, U2> SafeIter<'a> for (U1, U2) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>, 
[src]

impl<'a, U1, U2, U3> SafeIter<'a> for (U1, U2, U3) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>, 
[src]

impl<'a, U1, U2, U3, U4, U5, U6, U7> SafeIter<'a> for (U1, U2, U3, U4, U5, U6, U7) where
    U1: SafeIter<'a>,
    U2: SafeIter<'a>,
    U3: SafeIter<'a>,
    U4: SafeIter<'a>,
    U5: SafeIter<'a>,
    U6: SafeIter<'a>,
    U7: SafeIter<'a>, 
[src]

Loading content...

Implementors

impl<'_> SafeIter<'_> for Entity[src]

impl<'_, '_, T> SafeIter<'_> for Not<'_, T>[src]

impl<'_, '_, T> SafeIter<'_> for Read<'_, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'_, '_, T> SafeIter<'_> for ReadAndParent<'_, T>[src]

impl<'_, '_, T> SafeIter<'_> for ReadHierarchical<'_, T> where
    T: Component
[src]

impl<'_, '_, T> SafeIter<'_> for ReadOption<'_, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'_, '_, T> SafeIter<'_> for Write<'_, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'_, '_, T> SafeIter<'_> for WriteAndParent<'_, T> where
    T: Component
[src]

impl<'_, '_, T> SafeIter<'_> for WriteHierarchical<'_, T> where
    T: Component
[src]

impl<'_, '_, T> SafeIter<'_> for WriteOption<'_, T>[src]

impl<'_, '_, T, Not> SafeIter<'_> for ReadNot<'_, T, Not> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'_, T1, T2> SafeIter<'_> for HasOr<(T1, T2)>[src]

impl<'_, T1, T2, T3> SafeIter<'_> for HasOr<(T1, T2, T3)>[src]

impl<'_, T1, T2, T3, T4> SafeIter<'_> for HasOr<(T1, T2, T3, T4)>[src]

impl<'_, T1, T2, T3, T4, T5> SafeIter<'_> for HasOr<(T1, T2, T3, T4, T5)>[src]

impl<'_, T1, T2, T3, T4, T5, T6> SafeIter<'_> for HasOr<(T1, T2, T3, T4, T5, T6)>[src]

impl<'_, T1, T2, T3, T4, T5, T6, T7> SafeIter<'_> for HasOr<(T1, T2, T3, T4, T5, T6, T7)>[src]

impl<'_, T1, T2, T3, T4, T5, T6, T7, T8> SafeIter<'_> for HasOr<(T1, T2, T3, T4, T5, T6, T7, T8)>[src]

impl<'_, T> SafeIter<'_> for Has<T>[src]

impl<'_, T> SafeIter<'_> for HasOption<T>[src]

impl<'a> SafeIter<'a> for EntityWithPath<'a> where
    Write<'a, Node>: SafeIter<'a>,
    Write<'a, Path>: SafeIter<'a>,
    ReadOption<'a, Speed>: SafeIter<'a>,
    ReadOption<'a, Delta>: SafeIter<'a>,
    Write<'a, CurrentPosition>: SafeIter<'a>,
    WriteOption<'a, SkinningUpToDate>: SafeIter<'a>,
    Not<'a, ReynoldsPathInfo>: SafeIter<'a>, 
[src]

impl<'a> SafeIter<'a> for EntityWithPathMut<'a> where
    Write<'a, Node>: SafeIter<'a>,
    Write<'a, Path>: SafeIter<'a>,
    WriteOption<'a, Speed>: SafeIter<'a>,
    WriteOption<'a, Delta>: SafeIter<'a>,
    Write<'a, CurrentPosition>: SafeIter<'a>,
    WriteOption<'a, SkinningUpToDate>: SafeIter<'a>,
    Not<'a, ReynoldsPathInfo>: SafeIter<'a>, 
[src]

impl<'a> SafeIter<'a> for EntityWithReynoldsPath<'a> where
    Write<'a, Node>: SafeIter<'a>,
    Write<'a, Path>: SafeIter<'a>,
    ReadOption<'a, Speed>: SafeIter<'a>,
    ReadOption<'a, Delta>: SafeIter<'a>,
    Write<'a, Velocity>: SafeIter<'a>,
    Write<'a, CurrentPosition>: SafeIter<'a>,
    Read<'a, PathLookUpDistance>: SafeIter<'a>,
    Read<'a, ReynoldsPathInfo>: SafeIter<'a>, 
[src]

impl<'a, T1, T2> SafeIter<'a> for ReadOr<'a, (T1, T2)> where
    T2: Component,
    T1: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>, 
[src]

impl<'a, T1, T2, T3> SafeIter<'a> for ReadOr<'a, (T1, T2, T3)> where
    T3: Component,
    T2: Component,
    T1: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>, 
[src]

impl<'a, T1, T2, T3, T4> SafeIter<'a> for ReadOr<'a, (T1, T2, T3, T4)> where
    T3: Component,
    T2: Component,
    T1: Component,
    T4: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>,
    <T4 as Component>::Storage: Storage<'a, T4>, 
[src]

impl<'a, T1, T2, T3, T4, T5> SafeIter<'a> for ReadOr<'a, (T1, T2, T3, T4, T5)> where
    T3: Component,
    T2: Component,
    T1: Component,
    T4: Component,
    T5: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>,
    <T4 as Component>::Storage: Storage<'a, T4>,
    <T5 as Component>::Storage: Storage<'a, T5>, 
[src]

impl<'a, T1, T2, T3, T4, T5, T6> SafeIter<'a> for ReadOr<'a, (T1, T2, T3, T4, T5, T6)> where
    T3: Component,
    T2: Component,
    T1: Component,
    T4: Component,
    T5: Component,
    T6: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>,
    <T4 as Component>::Storage: Storage<'a, T4>,
    <T5 as Component>::Storage: Storage<'a, T5>,
    <T6 as Component>::Storage: Storage<'a, T6>, 
[src]

impl<'a, T1, T2, T3, T4, T5, T6, T7> SafeIter<'a> for ReadOr<'a, (T1, T2, T3, T4, T5, T6, T7)> where
    T3: Component,
    T2: Component,
    T1: Component,
    T4: Component,
    T5: Component,
    T6: Component,
    T7: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>,
    <T4 as Component>::Storage: Storage<'a, T4>,
    <T5 as Component>::Storage: Storage<'a, T5>,
    <T6 as Component>::Storage: Storage<'a, T6>,
    <T7 as Component>::Storage: Storage<'a, T7>, 
[src]

impl<'a, T1, T2, T3, T4, T5, T6, T7, T8> SafeIter<'a> for ReadOr<'a, (T1, T2, T3, T4, T5, T6, T7, T8)> where
    T3: Component,
    T2: Component,
    T1: Component,
    T4: Component,
    T5: Component,
    T6: Component,
    T7: Component,
    T8: Component,
    <T1 as Component>::Storage: Storage<'a, T1>,
    <T2 as Component>::Storage: Storage<'a, T2>,
    <T3 as Component>::Storage: Storage<'a, T3>,
    <T4 as Component>::Storage: Storage<'a, T4>,
    <T5 as Component>::Storage: Storage<'a, T5>,
    <T6 as Component>::Storage: Storage<'a, T6>,
    <T7 as Component>::Storage: Storage<'a, T7>,
    <T8 as Component>::Storage: Storage<'a, T8>, 
[src]

impl<'a, T, R> SafeIter<'a> for Ref<'a, T, R> where
    T: NToOneComponent<'a>,
    R: ReadOnlyOp<'a>, 
[src]

impl<'a, T, R> SafeIter<'a> for RefN<'a, T, R> where
    R: UnorderedData<'a> + ReadOnlyOp<'a>,
    <R as UnorderedData<'a>>::Storage: IntoSendStorage<'a>, 
[src]

impl<'a, T, R> SafeIter<'a> for URef<'a, T, R> where
    T: OneToOneComponent<'a>,
    R: SafeIter<'a>, 
[src]

Loading content...