pub struct FrameIndex {
pub total_padded_size: u64,
pub entries: Vec<FrameIndexEntry>,
pub source_etag: Option<String>,
pub source_compressed_size: Option<u64>,
}Fields§
§total_padded_size: u64S3 上の object 全体サイズ (padding frame 含む)
entries: Vec<FrameIndexEntry>§source_etag: Option<String>v0.8.4 #73 H-2: backend-reported ETag of the source object the
sidecar describes. Populated by s4-server::put_object from the
backend’s PUT response so the matching GET can head_object and
confirm it’s still talking about the same body. None for legacy
(v1) sidecars decoded out of an existing backend, in which case
the GET path treats the partial-fetch as best-effort and falls
back to a full read on any inconsistency signal.
source_compressed_size: Option<u64>v0.8.4 #73 H-2: backend object’s compressed bytes length the sidecar
was computed against. Cross-check signal alongside source_etag —
some backends (lifecycle moves, multi-object operations) can change
the bytes without a fresh ETag, so a size mismatch is independently
load-bearing. None on legacy v1 sidecars.
Implementations§
Source§impl FrameIndex
impl FrameIndex
pub fn total_original_size(&self) -> u64
Sourcepub fn lookup_range(&self, start: u64, end_exclusive: u64) -> Option<RangePlan>
pub fn lookup_range(&self, start: u64, end_exclusive: u64) -> Option<RangePlan>
Range request [start, end_exclusive) を解決して必要 frame の (start_idx, end_idx_exclusive)
と S3 上の partial-fetch byte range [byte_start, byte_end_exclusive) を返す。
1 frame でもオーバーラップしていればその frame の 全 byte を fetch する (= 部分 frame は decompress 単位)。
Trait Implementations§
Source§impl Clone for FrameIndex
impl Clone for FrameIndex
Source§fn clone(&self) -> FrameIndex
fn clone(&self) -> FrameIndex
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 FrameIndex
impl Debug for FrameIndex
Source§impl Default for FrameIndex
impl Default for FrameIndex
Source§fn default() -> FrameIndex
fn default() -> FrameIndex
Source§impl PartialEq for FrameIndex
impl PartialEq for FrameIndex
Source§fn eq(&self, other: &FrameIndex) -> bool
fn eq(&self, other: &FrameIndex) -> bool
self and other values to be equal, and is used by ==.