pub struct MmapBlockIndex { /* private fields */ }Expand description
Mmap’d raw block index (Option 2)
Keeps the prefix-compressed block index as raw bytes and decodes entries on-demand. Uses restart points every R entries for O(log N) lookup via binary search instead of O(N) linear scan.
Implementations§
Source§impl MmapBlockIndex
impl MmapBlockIndex
Sourcepub fn build(entries: &[(Vec<u8>, BlockAddr)]) -> Result<Vec<u8>>
pub fn build(entries: &[(Vec<u8>, BlockAddr)]) -> Result<Vec<u8>>
Build mmap-friendly index from entries.
Format: num_blocks (u32) | BlockAddrStore | prefix-compressed keys (with restart points) | restart_offsets[..] | restart_count (u32) | restart_interval (u16)
Sourcepub fn load(data: OwnedBytes) -> Result<Self>
pub fn load(data: OwnedBytes) -> Result<Self>
Load from raw bytes
Auto Trait Implementations§
impl Freeze for MmapBlockIndex
impl RefUnwindSafe for MmapBlockIndex
impl Send for MmapBlockIndex
impl Sync for MmapBlockIndex
impl Unpin for MmapBlockIndex
impl UnsafeUnpin for MmapBlockIndex
impl UnwindSafe for MmapBlockIndex
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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>
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