Skip to main content

ArgumentSource

Trait ArgumentSource 

Source
pub trait ArgumentSource<A: Alignment, V: ValueDomain = <Self as SourceDomain>::ValueDomain>:
    SourceDomain
    + Prepare
    + Explain
    + PlanIdentity
    + PlanInputs
    + Estimated {
    type Retention: Retention;

    // Required method
    fn lookup<'a, 'prepared>(
        prepared: &'prepared Self::Prepared<'a>,
        address: &A::Address<'a>,
    ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
       where Self: 'a;

    // Provided method
    fn resolve<'a>(
        prepared: &Self::Prepared<'a>,
        address: &A::Address<'a>,
        label: &'static str,
    ) -> <Self::Retention as ElementEmission>::Step<QueryResult<V::Value<'a>>>
       where Self: 'a { ... }
}

Required Associated Types§

Required Methods§

Source

fn lookup<'a, 'prepared>( prepared: &'prepared Self::Prepared<'a>, address: &A::Address<'a>, ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
where Self: 'a,

Provided Methods§

Source

fn resolve<'a>( prepared: &Self::Prepared<'a>, address: &A::Address<'a>, label: &'static str, ) -> <Self::Retention as ElementEmission>::Step<QueryResult<V::Value<'a>>>
where Self: 'a,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<A, V> ArgumentSource<A, V> for EdgeIndex
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

type Retention = Preserving

Source§

fn lookup<'a, 'prepared>( prepared: &'prepared Self::Prepared<'a>, _address: &A::Address<'a>, ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
where Self: 'a,

Source§

impl<A, V> ArgumentSource<A, V> for GraphRecordAttribute
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

type Retention = Preserving

Source§

fn lookup<'a, 'prepared>( prepared: &'prepared Self::Prepared<'a>, _address: &A::Address<'a>, ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
where Self: 'a,

Source§

impl<A, V> ArgumentSource<A, V> for GraphRecordValue
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

type Retention = Preserving

Source§

fn lookup<'a, 'prepared>( prepared: &'prepared Self::Prepared<'a>, _address: &A::Address<'a>, ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
where Self: 'a,

Source§

impl<A, V> ArgumentSource<A, V> for bool
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

type Retention = Preserving

Source§

fn lookup<'a, 'prepared>( prepared: &'prepared Self::Prepared<'a>, _address: &A::Address<'a>, ) -> Lookup<'prepared, QueryResult<V::Value<'a>>>
where Self: 'a,

Implementors§

Source§

impl<A, V, R> ArgumentSource<A, V> for Argument<A, V, R>
where A: Alignment, V: ValueDomain, R: Retention,

Source§

impl<A, V> ArgumentSource<A, V> for FailureKind
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

impl<A, V> ArgumentSource<A, V> for Position
where A: Alignment, for<'a> V: ValueDomain<Value<'a> = Self>,

Source§

impl<A: Alignment, S: MaybeAbsent<A>, P: MissingPolicy<A, S>> ArgumentSource<A> for WithMissing<A, S, P>

Source§

impl<S: ElementShape, C: AlignableArity<S, A>, A: Alignment> ArgumentSource<A> for OperandHandle<S, C>