Struct rin::ecs::ReadAndParentRef[][src]

pub struct ReadAndParentRef<'a, T, Ref> { /* fields omitted */ }

Operator over hierarchical components that will select an entity’s component for read only and apply another operator on it’s parent

#[derive(HierarchicalComponent, Debug)]
struct Position{x: f32, y: f32}

#[derive(Component, Debug)]
struct Velocity{x: f32, y: f32};

let iter = entities.ordered_iter_for::<ReadAndParentRef<Position, Read<Velocity>>>();
for (pos, parent_vel) in iter {

}

Trait Implementations

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

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

type Components = T

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

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

Auto Trait Implementations

impl<'a, T, Ref> RefUnwindSafe for ReadAndParentRef<'a, T, Ref> where
    Ref: RefUnwindSafe,
    T: RefUnwindSafe

impl<'a, T, Ref> Send for ReadAndParentRef<'a, T, Ref> where
    Ref: Send,
    T: Sync

impl<'a, T, Ref> Sync for ReadAndParentRef<'a, T, Ref> where
    Ref: Sync,
    T: Sync

impl<'a, T, Ref> Unpin for ReadAndParentRef<'a, T, Ref> where
    Ref: Unpin

impl<'a, T, Ref> UnwindSafe for ReadAndParentRef<'a, T, Ref> where
    Ref: UnwindSafe,
    T: RefUnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Any for T where
    T: Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Any + Send + Sync
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<V> IntoPnt<V> for V[src]

impl<V> IntoVec<V> for V[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]