Skip to main content

Builder

Struct Builder 

Source
pub struct Builder<B> { /* private fields */ }
Expand description

A stateful format-neutral archive construction engine.

Create this wrapper with ArchiveBuilder::builder or ArchiveBuilder::builder_with_policy.

Implementations§

Source§

impl<B> Builder<B>
where B: ArchiveBuilder,

Source

pub async fn add_file<'a, P>( &mut self, path: P, payload: impl Into<FilePayload<'a>>, metadata: EntryMetadata, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
where P: AsRef<Path>,

Adds one regular file from a FilePayload.

If the payload ends before its declared size or returns an error, the addition fails and the builder is poisoned if the archive member’s output may already have begun.

The payload must not have been read through FilePayload::next_chunk before this method is called.

Source

pub async fn add_directory<P>( &mut self, path: P, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
where P: AsRef<Path>,

Adds one directory member without reading from the filesystem.

This creates only the named directory member. It does not add any child members; use Self::add_directory_all to recursively add a filesystem directory and its contents.

Source

pub async fn add_directory_all<P>( &mut self, source: P, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
where P: AsRef<Path>,

Recursively adds a filesystem directory beneath its UTF-8 basename.

Entries are visited in deterministic sorted order and files are streamed with bounded memory. Source symbolic links are rejected by default; BuilderPolicy::symlink_policy can instead preserve them. A late traversal or validation failure may leave partial output and poison this builder.

Source

pub async fn finish( self, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>

Finalizes and consumes this archive builder.

Callers that need to retain access to an output sink should lend it to the format writer before wrapping it rather than transferring ownership.

Auto Trait Implementations§

§

impl<B> Freeze for Builder<B>
where B: Freeze,

§

impl<B> RefUnwindSafe for Builder<B>
where B: RefUnwindSafe,

§

impl<B> Send for Builder<B>
where B: Send,

§

impl<B> Sync for Builder<B>
where B: Sync,

§

impl<B> Unpin for Builder<B>
where B: Unpin,

§

impl<B> UnsafeUnpin for Builder<B>
where B: UnsafeUnpin,

§

impl<B> UnwindSafe for Builder<B>
where B: UnwindSafe,

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.