pub struct RelationHop {
pub parent_table: &'static str,
pub parent_column: &'static str,
pub related_table: &'static str,
pub related_column: &'static str,
pub quantifier: RelationQuantifier,
pub scope: RelatedReadScope,
}Expand description
One traversed relation edge: the FK linkage, how the related rows are
quantified (ToOne for a plain to-one hop, Some/Every/None for a
to-many hop under a quantifier), and the related model’s read scope,
which every backend that enforces policy applies inside the subquery
this hop renders to (GHSA-p55v-6xv5-93p3).
Fields§
§parent_table: &'static str§parent_column: &'static str§quantifier: RelationQuantifier§scope: RelatedReadScopeRequired, never defaulted: see RelatedReadScope.
Implementations§
Source§impl RelationHop
impl RelationHop
pub const fn new( parent_table: &'static str, parent_column: &'static str, related_table: &'static str, related_column: &'static str, quantifier: RelationQuantifier, scope: RelatedReadScope, ) -> RelationHop
Sourcepub const fn with_quantifier(
self,
quantifier: RelationQuantifier,
) -> RelationHop
pub const fn with_quantifier( self, quantifier: RelationQuantifier, ) -> RelationHop
Same linkage, re-quantified. Used when a to-many hop is recorded
before the caller has picked some/every/none.
Sourcepub fn is_self_relation(&self) -> bool
pub fn is_self_relation(&self) -> bool
Whether the related table is the parent table (User.manager). The
subquery’s own FROM then shadows the parent’s name, so backends
must correlate through a derived table instead of related.col = parent.col, which would compare the inner row with itself.
Trait Implementations§
Source§impl Clone for RelationHop
impl Clone for RelationHop
Source§fn clone(&self) -> RelationHop
fn clone(&self) -> RelationHop
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for RelationHop
Source§impl Debug for RelationHop
impl Debug for RelationHop
impl Eq for RelationHop
Source§impl PartialEq for RelationHop
impl PartialEq for RelationHop
impl StructuralPartialEq for RelationHop
Auto Trait Implementations§
impl Freeze for RelationHop
impl RefUnwindSafe for RelationHop
impl Send for RelationHop
impl Sync for RelationHop
impl Unpin for RelationHop
impl UnsafeUnpin for RelationHop
impl UnwindSafe for RelationHop
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more