pub struct PageDescriptor {
pub rel_offset: u64,
pub length: u32,
pub entry_count: u32,
pub min_zoom: u8,
pub max_zoom: u8,
pub min_lon_e7: i32,
pub min_lat_e7: i32,
pub max_lon_e7: i32,
pub max_lat_e7: i32,
pub t_min: i64,
pub t_max: i64,
}Expand description
One leaf page’s pruning descriptor, stored fixed-width in the root page.
Fields§
§rel_offset: u64Byte offset of the leaf frame relative to the end of the root page
(i.e. relative to root_length). Absolute = root_length + rel_offset.
Relative so the root encodes without knowing its own at-rest length.
length: u32At-rest (framed) byte length of the leaf.
entry_count: u32Entries in this leaf (Σ over pages == N).
min_zoom: u8Inclusive zoom range of the leaf’s entries.
max_zoom: u8§min_lon_e7: i32Geographic bbox of the leaf’s tiles, lon/lat × 1e7. Mins are floored and maxes ceiled so the integer bbox never under-covers the true bbox (no false-negative page prune from rounding).
min_lat_e7: i32§max_lon_e7: i32§max_lat_e7: i32§t_min: i64Subtree temporal bounds: min(cover_t_min ?? time_start) ..
max(time_end) — the COPC-temporal page-pointer prune.
t_max: i64Implementations§
Source§impl PageDescriptor
impl PageDescriptor
Sourcepub fn overlaps(
&self,
zoom: u8,
q_min_lon_e7: i32,
q_min_lat_e7: i32,
q_max_lon_e7: i32,
q_max_lat_e7: i32,
t_start: i64,
t_end: i64,
) -> bool
pub fn overlaps( &self, zoom: u8, q_min_lon_e7: i32, q_min_lat_e7: i32, q_max_lon_e7: i32, q_max_lat_e7: i32, t_start: i64, t_end: i64, ) -> bool
Does this leaf overlap a viewport query? zoom membership ∧ geo-bbox
overlap ∧ temporal overlap. Query bbox is lon/lat × 1e7 (same fixed
point as the descriptor). Mirrors the TS reader’s page selection exactly.
Trait Implementations§
Source§impl Clone for PageDescriptor
impl Clone for PageDescriptor
Source§fn clone(&self) -> PageDescriptor
fn clone(&self) -> PageDescriptor
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 PageDescriptor
impl Debug for PageDescriptor
impl Eq for PageDescriptor
Source§impl PartialEq for PageDescriptor
impl PartialEq for PageDescriptor
Source§fn eq(&self, other: &PageDescriptor) -> bool
fn eq(&self, other: &PageDescriptor) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for PageDescriptor
Auto Trait Implementations§
impl Freeze for PageDescriptor
impl RefUnwindSafe for PageDescriptor
impl Send for PageDescriptor
impl Sync for PageDescriptor
impl Unpin for PageDescriptor
impl UnsafeUnpin for PageDescriptor
impl UnwindSafe for PageDescriptor
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§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