pub struct PackedTileset { /* private fields */ }Expand description
A local packed STT dataset (manifest.json + index/*.sttd + packs/*.sttp)
opened for analysis.
Directory entries are cheap (decoded once at open); payload reads go through the pack mmaps on demand, so directory-only passes never touch tile bytes.
Implementations§
Source§impl PackedTileset
impl PackedTileset
Sourcepub fn open<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>
Open a packed dataset. path may be either the dataset directory
(containing manifest.json) or the manifest.json file itself.
Sourcepub fn manifest_path(&self) -> &Path
pub fn manifest_path(&self) -> &Path
Path of the manifest.json this tileset was opened from.
Sourcepub fn manifest(&self) -> &Manifest
pub fn manifest(&self) -> &Manifest
The parsed packed manifest (pack table, directory pointer, metadata).
Sourcepub fn zoom_range(&self) -> (u8, u8)
pub fn zoom_range(&self) -> (u8, u8)
(min_zoom, max_zoom) from the metadata.
Sourcepub fn time_range(&self) -> TimeRange
pub fn time_range(&self) -> TimeRange
Time range (Unix ms) from the metadata.
Sourcepub fn tile_count(&self) -> u64
pub fn tile_count(&self) -> u64
Total directory entry count (derived from the directory at write time).
Sourcepub fn feature_count(&self) -> u64
pub fn feature_count(&self) -> u64
Total feature records summed across tiles (a feature landing in N tiles counts N times — the index-weighted total).
Sourcepub fn temporal_bucket_ms(&self) -> u64
pub fn temporal_bucket_ms(&self) -> u64
Base temporal bucket size in milliseconds.
Sourcepub fn pack_count(&self) -> usize
pub fn pack_count(&self) -> usize
Number of pack objects in the manifest’s pack table.
Sourcepub fn is_paged(&self) -> bool
pub fn is_paged(&self) -> bool
Whether the directory ships in the paged container (root + leaf pages) rather than the single whole-load object. Reading is identical either way; this only matters for reporting.
Sourcepub fn entries(&self) -> &[TileEntry]
pub fn entries(&self) -> &[TileEntry]
All directory entries, sorted by (zoom, hilbert, time_start).
Each TileEntry carries the tile address (zoom, x, y,
time_start/time_end, temporal_bucket_ms) and the blob location
(pack_id, offset, length, crc32c). Byte-identical tiles were
deduped at write time, so (pack_id, offset) identifies the physical
blob: entries sharing that pair share one blob.
Sourcepub fn read_payload(&self, entry: &TileEntry) -> Result<Vec<u8>>
pub fn read_payload(&self, entry: &TileEntry) -> Result<Vec<u8>>
Read and decompress one tile’s raw payload bytes (CRC-verified).
Sourcepub fn read_layers(&self, entry: &TileEntry) -> Result<Vec<DecodedLayer>>
pub fn read_layers(&self, entry: &TileEntry) -> Result<Vec<DecodedLayer>>
Read one tile and decode it into its Arrow layers (each a named
RecordBatch).
Auto Trait Implementations§
impl !RefUnwindSafe for PackedTileset
impl !Sync for PackedTileset
impl Freeze for PackedTileset
impl Send for PackedTileset
impl Unpin for PackedTileset
impl UnsafeUnpin for PackedTileset
impl UnwindSafe for PackedTileset
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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