pub struct PuffinWriter;Expand description
Minimal single-blob Puffin file writer for Deletion Vectors.
Puffin format (simplified, one blob):
[4 bytes magic "PFAc"] [blob bytes] [footer JSON] [4 bytes footer_len LE] [4 bytes magic "PFAc"]The DV manifest entry stores offset=4 (after magic) and length=blob.len(), so
readers skip the Puffin header/footer and fetch only the bitmap bytes via range GET.
Implementations§
Source§impl PuffinWriter
impl PuffinWriter
Sourcepub fn write_single_dv(
bitmap: &RoaringBitmap,
snapshot_id: i64,
) -> AilakeResult<(Bytes, u64, u64)>
pub fn write_single_dv( bitmap: &RoaringBitmap, snapshot_id: i64, ) -> AilakeResult<(Bytes, u64, u64)>
Serialize bitmap into a single-blob Puffin file.
Returns (file_bytes, blob_offset, blob_length).
Auto Trait Implementations§
impl Freeze for PuffinWriter
impl RefUnwindSafe for PuffinWriter
impl Send for PuffinWriter
impl Sync for PuffinWriter
impl Unpin for PuffinWriter
impl UnsafeUnpin for PuffinWriter
impl UnwindSafe for PuffinWriter
Blanket Implementations§
impl<T> Allocation for T
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> 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