Skip to main content

Encoder

Struct Encoder 

Source
pub struct Encoder<'a> { /* private fields */ }
Expand description

A resumable pack encoder. Retain the repository and selected order unchanged until EOF. read performs at most one object-body read, bounded by its output slice. The cursor owns hash/framing state, never object or pack-sized storage.

Implementations§

Source§

impl<'a> Encoder<'a>

Source

pub fn new( repository: &impl Repository, order: Option<&'a [usize]>, ) -> Result<Encoder<'a>, Error>

Encode all objects (None) or the supplied unique indices, in order. Invalid selections fail before the first output byte.

Source

pub fn read( &mut self, repository: &impl Repository, output: &mut [u8], ) -> Result<usize, Error>

Return bytes to stage for transport. Preserve unsent bytes at the host; calling again advances the cursor. Zero means complete, never pending. Backend read failures leave the failed read resumable. After any failure, discard bytes in that call’s output slice. Earlier successful pulls stand.

Source

pub fn selection(&self) -> Option<&'a [usize]>

Immutable selection retained by this cursor. None denotes all objects. This is metadata only; reading it never advances encoding.

Source

pub fn checksum(&self) -> Option<ObjectId>

Checksum becomes available after its complete trailer has been drained.

Auto Trait Implementations§

§

impl<'a> Freeze for Encoder<'a>

§

impl<'a> RefUnwindSafe for Encoder<'a>

§

impl<'a> Send for Encoder<'a>

§

impl<'a> Sync for Encoder<'a>

§

impl<'a> Unpin for Encoder<'a>

§

impl<'a> UnsafeUnpin for Encoder<'a>

§

impl<'a> UnwindSafe for Encoder<'a>

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.