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
impl DeltaDecoder
pub fn new(base_size: u64, base_depth: u32, limits: DeltaLimits) -> Result<Self>
pub fn position(&self) -> u64
pub fn depth(&self) -> u32
Sourcepub fn update<'input>(
&mut self,
input: &'input [u8],
end_of_input: bool,
) -> Result<DeltaProgress<'input>>
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.