pub struct OwnedSegment { /* private fields */ }Expand description
Owned segment — bytes + parsed metadata in a single struct, no
borrow lifetimes. The catalog (v5.1+) holds a
Vec<OwnedSegment> for its cold tier so each lookup parses
nothing fresh; the lookup / might_contain / scan calls
here share the same module-private implementation as
SegmentReader.
File I/O lives outside this struct — spg-storage is no_std,
so callers (e.g. spg-server) load the segment via
std::fs::read and hand the resulting Vec<u8> to
OwnedSegment::from_bytes.
Implementations§
Source§impl OwnedSegment
impl OwnedSegment
Sourcepub fn from_bytes(bytes: Vec<u8>) -> Result<Self, SegmentError>
pub fn from_bytes(bytes: Vec<u8>) -> Result<Self, SegmentError>
Parse and validate a segment from owned bytes. The bytes
stay resident inside the returned OwnedSegment for the
life of that value. Validation cost is paid once; per-
lookup cost is identical to SegmentReader::lookup.
v6.6.2 — accepts both v1 (SPGSEG\x01\x00) and v2
(SPGSEG\x02\x00) magics. A v2 file’s body is transparently
unwrapped before the v1 parser runs; the unwrapped v1 bytes
become the bytes field, so all downstream readers see a
canonical v1 layout. v6.7.1 — also extracts any BRIN
sidecar.
Sourcepub fn brin_summaries(&self) -> &[BrinSummary]
pub fn brin_summaries(&self) -> &[BrinSummary]
v6.7.1 — borrow the BRIN per-page summaries when the segment was written with a BRIN sidecar. Empty for v1 segments or v2 without a sidecar.
pub fn meta(&self) -> &SegmentMeta
Sourcepub fn codec_version(&self) -> u8
pub fn codec_version(&self) -> u8
v7.23/v7.27 — the codec version implied by this segment’s
inner magic (0 legacy / 46 / 47). Callers thread this into
decode_row_body_dense.
pub fn might_contain(&self, key: u64) -> bool
pub fn lookup(&self, key: u64) -> Option<Vec<u8>>
pub fn scan(&self) -> impl Iterator<Item = (u64, Vec<u8>)> + '_
Trait Implementations§
Source§impl Clone for OwnedSegment
impl Clone for OwnedSegment
Source§fn clone(&self) -> OwnedSegment
fn clone(&self) -> OwnedSegment
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more