Skip to main content

QueryFetch

Trait QueryFetch 

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

    // Required methods
    fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access;
    fn fetch(access: &mut Self::Access) -> Option<Self::Value>;
}

Required Associated Types§

Required Methods§

Source

fn access(graph: &'a Graph, index: AnyIndex) -> 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> QueryFetch<'a> for ()

Source§

type Value = ()

Source§

type Access = ()

Source§

fn access(_: &'a Graph, _: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value, <G as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access, <G as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value, <G as QueryFetch<'a>>::Value, <H as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access, <G as QueryFetch<'a>>::Access, <H as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value, <G as QueryFetch<'a>>::Value, <H as QueryFetch<'a>>::Value, <I as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access, <G as QueryFetch<'a>>::Access, <H as QueryFetch<'a>>::Access, <I as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value, <G as QueryFetch<'a>>::Value, <H as QueryFetch<'a>>::Value, <I as QueryFetch<'a>>::Value, <J as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access, <G as QueryFetch<'a>>::Access, <H as QueryFetch<'a>>::Access, <I as QueryFetch<'a>>::Access, <J as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

type Value = (<A as QueryFetch<'a>>::Value, <B as QueryFetch<'a>>::Value, <C as QueryFetch<'a>>::Value, <D as QueryFetch<'a>>::Value, <E as QueryFetch<'a>>::Value, <F as QueryFetch<'a>>::Value, <G as QueryFetch<'a>>::Value, <H as QueryFetch<'a>>::Value, <I as QueryFetch<'a>>::Value, <J as QueryFetch<'a>>::Value, <K as QueryFetch<'a>>::Value)

Source§

type Access = (<A as QueryFetch<'a>>::Access, <B as QueryFetch<'a>>::Access, <C as QueryFetch<'a>>::Access, <D as QueryFetch<'a>>::Access, <E as QueryFetch<'a>>::Access, <F as QueryFetch<'a>>::Access, <G as QueryFetch<'a>>::Access, <H as QueryFetch<'a>>::Access, <I as QueryFetch<'a>>::Access, <J as QueryFetch<'a>>::Access, <K as QueryFetch<'a>>::Access)

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

impl<'a, T> QueryFetch<'a> for Option<&'a T>

Source§

type Value = Option<ValueReadAccess<'a, T>>

Source§

type Access = Option<Option<ValueReadAccess<'a, T>>>

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

impl<'a, T> QueryFetch<'a> for Option<&'a mut T>

Source§

type Value = Option<ValueWriteAccess<'a, T>>

Source§

type Access = Option<Option<ValueWriteAccess<'a, T>>>

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

impl<'a, T> QueryFetch<'a> for &'a T

Source§

type Value = ValueReadAccess<'a, T>

Source§

type Access = Option<ValueReadAccess<'a, T>>

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Source§

impl<'a, T> QueryFetch<'a> for &'a mut T

Source§

type Value = ValueWriteAccess<'a, T>

Source§

type Access = Option<ValueWriteAccess<'a, T>>

Source§

fn access(graph: &'a Graph, index: AnyIndex) -> Self::Access

Source§

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

Implementors§

Source§

impl<'a> QueryFetch<'a> for AnyIndex

Source§

impl<'a, T, Transform: QueryTransform<'a, Input = AnyIndex>> QueryFetch<'a> for Related<'a, T, Transform>

Source§

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

Source§

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

Source§

impl<'a, T, Transform: QueryTransform<'a, Input = AnyIndex>> QueryFetch<'a> for Traverse<'a, T, Transform>

Source§

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

Source§

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