Skip to main content

DeltaDecoder

Struct DeltaDecoder 

Source
pub struct DeltaDecoder { /* private fields */ }
Expand description

Parse fragmented, already inflated delta bytes with fixed inline state. The trusted base must be canonical and completely resolved at base_depth. Copies use 64-bit ranges so the host can await bounded storage reads between events. Inserts borrow the current input, including partial instructions.

Output is provisional: the caller must execute all events, hash the result with its inherited object kind, and validate the enclosing pack and graph before publishing refs. position counts emitted bytes, not successful I/O.

Implementations§

Source§

impl DeltaDecoder

Source

pub fn new(base_size: u64, base_depth: u32, limits: DeltaLimits) -> Result<Self>

Source

pub fn position(&self) -> u64

Source

pub fn depth(&self) -> u32

Source

pub fn update<'input>( &mut self, input: &'input [u8], end_of_input: bool, ) -> Result<DeltaProgress<'input>>

Return at most one event. Resubmit the unconsumed suffix, retaining its EOF flag; end_of_input closes the delta, not merely this input chunk. Failures are terminal. Exact EOF is required, including an empty call after the last instruction if its event consumed the final input byte.

Source

pub fn finish(&self) -> Result<()>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.