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, ) -> Self
Sourcepub const fn with_quantifier(self, quantifier: RelationQuantifier) -> Self
pub const fn with_quantifier(self, quantifier: RelationQuantifier) -> Self
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
impl 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