pub struct CrossPackageIndex { /* private fields */ }Expand description
Precomputed cross-package include map. Built from ALL installed packages’ configs so that
?include=<name> can join a related entity that lives in a different package, in either
direction (to_one when the FK is in the requesting table, to_many when it points back to it).
Keyed by (owning_table_id, include_name). The include_name is the related entity’s
path_segment, matching the same-package include convention. Same-package relationships are
intentionally skipped — they are already resolved by resolve into ResolvedEntity::includes.
Limitation: the join executes against the request’s tenant pool. For Database-strategy tenants the related package must be physically migrated into that tenant’s DB; if it is not, the join fails at execution time rather than here.
Implementations§
Source§impl CrossPackageIndex
impl CrossPackageIndex
Sourcepub fn get(
&self,
table_id: &str,
name: &str,
) -> Option<&(IncludeSpec, ResolvedEntity)>
pub fn get( &self, table_id: &str, name: &str, ) -> Option<&(IncludeSpec, ResolvedEntity)>
Look up a cross-package include for table_id by include name (the related path_segment).
pub fn is_empty(&self) -> bool
Trait Implementations§
Source§impl Clone for CrossPackageIndex
impl Clone for CrossPackageIndex
Source§fn clone(&self) -> CrossPackageIndex
fn clone(&self) -> CrossPackageIndex
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CrossPackageIndex
impl Debug for CrossPackageIndex
Source§impl Default for CrossPackageIndex
impl Default for CrossPackageIndex
Source§fn default() -> CrossPackageIndex
fn default() -> CrossPackageIndex
Auto Trait Implementations§
impl Freeze for CrossPackageIndex
impl RefUnwindSafe for CrossPackageIndex
impl Send for CrossPackageIndex
impl Sync for CrossPackageIndex
impl Unpin for CrossPackageIndex
impl UnsafeUnpin for CrossPackageIndex
impl UnwindSafe for CrossPackageIndex
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
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> ⓘ
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