Trait TypedRelationLookupFetch

Source
pub trait TypedRelationLookupFetch<'a> {
    type Value;
    type Access;

    // Required methods
    fn access(world: &'a World, entity: Entity) -> Self::Access;
    fn fetch(access: &mut Self::Access) -> Option<Self::Value>;
}

Required Associated Types§

Required Methods§

Source

fn access(world: &'a World, entity: Entity) -> Self::Access

Source

fn fetch(access: &mut Self::Access) -> Option<Self::Value>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> TypedRelationLookupFetch<'a> for ()

Source§

type Value = ()

Source§

type Access = ()

Source§

fn access(_: &'a World, _: Entity) -> Self::Access

Source§

fn fetch(_: &mut Self::Access) -> Option<Self::Value>

Source§

impl<'a, A: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A,)

Source§

type Value = (<A as TypedRelationLookupFetch<'a>>::Value,)

Source§

type Access = (<A as TypedRelationLookupFetch<'a>>::Access,)

Source§

fn access(world: &'a World, entity: Entity) -> Self::Access

Source§

fn fetch(access: &mut Self::Access) -> Option<Self::Value>

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B)

Source§

type Value = (<A as TypedRelationLookupFetch<'a>>::Value, <B as TypedRelationLookupFetch<'a>>::Value)

Source§

type Access = (<A as TypedRelationLookupFetch<'a>>::Access, <B as TypedRelationLookupFetch<'a>>::Access)

Source§

fn access(world: &'a World, entity: Entity) -> Self::Access

Source§

fn fetch(access: &mut Self::Access) -> Option<Self::Value>

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C)

Source§

type Value = (<A as TypedRelationLookupFetch<'a>>::Value, <B as TypedRelationLookupFetch<'a>>::Value, <C as TypedRelationLookupFetch<'a>>::Value)

Source§

type Access = (<A as TypedRelationLookupFetch<'a>>::Access, <B as TypedRelationLookupFetch<'a>>::Access, <C as TypedRelationLookupFetch<'a>>::Access)

Source§

fn access(world: &'a World, entity: Entity) -> Self::Access

Source§

fn fetch(access: &mut Self::Access) -> Option<Self::Value>

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>, K: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>, K: TypedRelationLookupFetch<'a>, L: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>, K: TypedRelationLookupFetch<'a>, L: TypedRelationLookupFetch<'a>, M: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J, K, L, M)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>, K: TypedRelationLookupFetch<'a>, L: TypedRelationLookupFetch<'a>, M: TypedRelationLookupFetch<'a>, O: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J, K, L, M, O)

Source§

impl<'a, A: TypedRelationLookupFetch<'a>, B: TypedRelationLookupFetch<'a>, C: TypedRelationLookupFetch<'a>, D: TypedRelationLookupFetch<'a>, E: TypedRelationLookupFetch<'a>, F: TypedRelationLookupFetch<'a>, G: TypedRelationLookupFetch<'a>, H: TypedRelationLookupFetch<'a>, I: TypedRelationLookupFetch<'a>, J: TypedRelationLookupFetch<'a>, K: TypedRelationLookupFetch<'a>, L: TypedRelationLookupFetch<'a>, M: TypedRelationLookupFetch<'a>, O: TypedRelationLookupFetch<'a>, P: TypedRelationLookupFetch<'a>> TypedRelationLookupFetch<'a> for (A, B, C, D, E, F, G, H, I, J, K, L, M, O, P)

Source§

type Value = (<A as TypedRelationLookupFetch<'a>>::Value, <B as TypedRelationLookupFetch<'a>>::Value, <C as TypedRelationLookupFetch<'a>>::Value, <D as TypedRelationLookupFetch<'a>>::Value, <E as TypedRelationLookupFetch<'a>>::Value, <F as TypedRelationLookupFetch<'a>>::Value, <G as TypedRelationLookupFetch<'a>>::Value, <H as TypedRelationLookupFetch<'a>>::Value, <I as TypedRelationLookupFetch<'a>>::Value, <J as TypedRelationLookupFetch<'a>>::Value, <K as TypedRelationLookupFetch<'a>>::Value, <L as TypedRelationLookupFetch<'a>>::Value, <M as TypedRelationLookupFetch<'a>>::Value, <O as TypedRelationLookupFetch<'a>>::Value, <P as TypedRelationLookupFetch<'a>>::Value)

Source§

type Access = (<A as TypedRelationLookupFetch<'a>>::Access, <B as TypedRelationLookupFetch<'a>>::Access, <C as TypedRelationLookupFetch<'a>>::Access, <D as TypedRelationLookupFetch<'a>>::Access, <E as TypedRelationLookupFetch<'a>>::Access, <F as TypedRelationLookupFetch<'a>>::Access, <G as TypedRelationLookupFetch<'a>>::Access, <H as TypedRelationLookupFetch<'a>>::Access, <I as TypedRelationLookupFetch<'a>>::Access, <J as TypedRelationLookupFetch<'a>>::Access, <K as TypedRelationLookupFetch<'a>>::Access, <L as TypedRelationLookupFetch<'a>>::Access, <M as TypedRelationLookupFetch<'a>>::Access, <O as TypedRelationLookupFetch<'a>>::Access, <P as TypedRelationLookupFetch<'a>>::Access)

Source§

fn access(world: &'a World, entity: Entity) -> Self::Access

Source§

fn fetch(access: &mut Self::Access) -> Option<Self::Value>

Implementors§

Source§

impl<'a> TypedRelationLookupFetch<'a> for Entity

Source§

impl<'a, A, B> TypedRelationLookupFetch<'a> for Join<'a, A, B>

Source§

type Value = (Arc<<A as TypedRelationLookupFetch<'a>>::Value>, <B as TypedRelationLookupFetch<'a>>::Value)

Source§

type Access = Box<dyn Iterator<Item = <Join<'a, A, B> as TypedRelationLookupFetch<'a>>::Value> + 'a>

Source§

impl<'a, const LOCKING: bool, Fetch> TypedRelationLookupFetch<'a> for Lookup<'a, LOCKING, Fetch>
where Fetch: TypedLookupFetch<'a, LOCKING>,

Source§

type Value = <Fetch as TypedLookupFetch<'a, LOCKING>>::ValueOne

Source§

type Access = Option<<Fetch as TypedLookupFetch<'a, LOCKING>>::ValueOne>

Source§

impl<'a, const LOCKING: bool, T, Transform> TypedRelationLookupFetch<'a> for Related<'a, LOCKING, T, Transform>
where T: Component, Transform: TypedRelationLookupTransform<'a, Input = Entity>,

Source§

type Value = <Transform as TypedRelationLookupTransform<'a>>::Output

Source§

type Access = Box<dyn Iterator<Item = <Related<'a, LOCKING, T, Transform> as TypedRelationLookupFetch<'a>>::Value> + 'a>

Source§

impl<'a, const LOCKING: bool, T, Transform> TypedRelationLookupFetch<'a> for RelatedPair<'a, LOCKING, T, Transform>
where T: Component, Transform: TypedRelationLookupTransform<'a, Input = (Entity, Entity)>,

Source§

type Value = <Transform as TypedRelationLookupTransform<'a>>::Output

Source§

type Access = Box<dyn Iterator<Item = <RelatedPair<'a, LOCKING, T, Transform> as TypedRelationLookupFetch<'a>>::Value> + 'a>

Source§

impl<'a, const LOCKING: bool, T, Transform> TypedRelationLookupFetch<'a> for Traverse<'a, LOCKING, T, Transform>
where T: Component, Transform: TypedRelationLookupTransform<'a, Input = Entity>,

Source§

type Value = <Transform as TypedRelationLookupTransform<'a>>::Output

Source§

type Access = Box<dyn Iterator<Item = <Traverse<'a, LOCKING, T, Transform> as TypedRelationLookupFetch<'a>>::Value> + 'a>

Source§

impl<'a, const LOCKING: bool, T, Transform> TypedRelationLookupFetch<'a> for TraversePair<'a, LOCKING, T, Transform>
where T: Component, Transform: TypedRelationLookupTransform<'a, Input = (Entity, Entity)>,

Source§

type Value = <Transform as TypedRelationLookupTransform<'a>>::Output

Source§

type Access = Box<dyn Iterator<Item = <TraversePair<'a, LOCKING, T, Transform> as TypedRelationLookupFetch<'a>>::Value> + 'a>