pub struct PackReader;Expand description
Streaming-style packfile reader. Verifies header, trailer, entry
framing, and the base-before-delta ordering rule. Reconstructs delta
targets and writes every resolved object to store.
Implementations§
Source§impl PackReader
impl PackReader
Sourcepub fn read(
pack_bytes: &[u8],
store: &ObjectStore,
) -> Result<UnpackReport, PackError>
pub fn read( pack_bytes: &[u8], store: &ObjectStore, ) -> Result<UnpackReport, PackError>
Verify and unpack pack_bytes into store. Returns counts of
raw vs. delta entries plus the list of stored hashes (in pack
order, deduped within this call).
§Errors
Returns the matching PackError variant on any malformed
input or trailer mismatch. The store is not modified if the
trailer fails verification.
§Panics
The internal try_into calls on fixed-size byte slices are
statically guaranteed to succeed (we slice exactly 4 bytes for
every u32::from_le_bytes). They expect-panic only if the
compiler’s slice-bounds elision is wrong.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PackReader
impl RefUnwindSafe for PackReader
impl Send for PackReader
impl Sync for PackReader
impl Unpin for PackReader
impl UnsafeUnpin for PackReader
impl UnwindSafe for PackReader
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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