pub struct SpatialRoutingTable { /* private fields */ }Expand description
Per-collection spatial routing metadata.
Tracks which shards have spatial data and their extent. Used by the coordinator to avoid fanning out to shards that can’t possibly match.
Implementations§
Source§impl SpatialRoutingTable
impl SpatialRoutingTable
pub fn new() -> Self
Sourcepub fn update_extent(
&mut self,
collection: &str,
shard_id: u16,
extent: Option<BoundingBox>,
entry_count: usize,
)
pub fn update_extent( &mut self, collection: &str, shard_id: u16, extent: Option<BoundingBox>, entry_count: usize, )
Update the spatial extent for a shard.
Sourcepub fn route_query(
&self,
collection: &str,
query_bbox: &BoundingBox,
all_shard_ids: &[u16],
) -> Vec<u16>
pub fn route_query( &self, collection: &str, query_bbox: &BoundingBox, all_shard_ids: &[u16], ) -> Vec<u16>
Find which shards might contain results for a spatial query.
Returns shard IDs whose extent overlaps the query bounding box. If no extent data is available for a shard, it is conservatively included (we don’t know what’s there, so we must check).
Sourcepub fn total_entries(&self, collection: &str) -> usize
pub fn total_entries(&self, collection: &str) -> usize
Get the total number of spatial entries across all shards for a collection.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SpatialRoutingTable
impl RefUnwindSafe for SpatialRoutingTable
impl Send for SpatialRoutingTable
impl Sync for SpatialRoutingTable
impl Unpin for SpatialRoutingTable
impl UnsafeUnpin for SpatialRoutingTable
impl UnwindSafe for SpatialRoutingTable
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.