pub struct BlockIndex {
pub entries: Vec<BlockIndexEntry>,
pub checksums_enabled: bool,
}Expand description
In-memory representation of the trailing block index.
Fields§
§entries: Vec<BlockIndexEntry>§checksums_enabled: boolImplementations§
Source§impl BlockIndex
impl BlockIndex
Sourcepub fn uncompressed_offset(&self, block_n: u64) -> u64
pub fn uncompressed_offset(&self, block_n: u64) -> u64
Returns the absolute byte offset within the original uncompressed stream
at which block n begins. O(N) — sums preceding uncompressed sizes.
Sourcepub fn block_for_offset(&self, uncompressed_offset: u64) -> Option<u64>
pub fn block_for_offset(&self, uncompressed_offset: u64) -> Option<u64>
Returns the block index containing the given uncompressed byte offset,
or None if the offset is beyond the end of the stream.
O(N) linear scan over cumulative uncompressed sizes.
Sourcepub fn total_uncompressed_size(&self) -> u64
pub fn total_uncompressed_size(&self) -> u64
Total uncompressed size across all blocks.
Trait Implementations§
Source§impl Clone for BlockIndex
impl Clone for BlockIndex
Source§fn clone(&self) -> BlockIndex
fn clone(&self) -> BlockIndex
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BlockIndex
impl RefUnwindSafe for BlockIndex
impl Send for BlockIndex
impl Sync for BlockIndex
impl Unpin for BlockIndex
impl UnsafeUnpin for BlockIndex
impl UnwindSafe for BlockIndex
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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