Skip to main content

SourcesIn

Trait SourcesIn 

Source
pub trait SourcesIn<Scope, Proof> {
    type Nullable: Nullability;
}
Expand description

Every source in the sources tree Self is in Scope.

This is the core scope check. It fails, with “X is not in this query’s FROM/JOIN scope”, when a Src<T> in the tree names a source that Scope does not contain. Proof is a witness type the compiler infers.

Required Associated Types§

Source

type Nullable: Nullability

Null when an outer join can make the expression NULL even though its declared nullability says otherwise.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<Scope, A, B, ProofA, ProofB> SourcesIn<Scope, (ProofA, ProofB)> for (A, B)
where A: SourcesIn<Scope, ProofA>, B: SourcesIn<Scope, ProofB>,

Source§

type Nullable = <<A as SourcesIn<Scope, ProofA>>::Nullable as Nullability>::Or<<B as SourcesIn<Scope, ProofB>>::Nullable>

Source§

impl<Scope> SourcesIn<Scope, ()> for ()

Implementors§

Source§

impl<Outer, Scope, S, Proof> SourcesIn<Outer, Proof> for At<Scope, S>
where Scope: Concat<Outer>, S: SourcesIn<<Scope as Concat<Outer>>::Output, Proof>,

Source§

impl<Scope, A, B, ProofA, ProofB> SourcesIn<Scope, (ProofA, ProofB)> for Coalesce<A, B>
where A: SourcesIn<Scope, ProofA>, B: SourcesIn<Scope, ProofB>,

Source§

type Nullable = <<A as SourcesIn<Scope, ProofA>>::Nullable as Nullability>::And<<B as SourcesIn<Scope, ProofB>>::Nullable>

Source§

impl<Scope, T, Witness> SourcesIn<Scope, Witness> for Src<T>
where T: ScopeEntry, Scope: ScopeContains<T::Key, Witness>,

Source§

type Nullable = <Scope as ScopeContains<<T as ScopeEntry>::Key, Witness>>::Nullable

Source§

impl<Scope> SourcesIn<Scope, ()> for NonNull

Source§

impl<Scope> SourcesIn<Scope, ()> for Null