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,
impl<B> Builder<B>where
B: ArchiveBuilder,
Sourcepub async fn add_file<'a, P>(
&mut self,
path: P,
payload: impl Into<FilePayload<'a>>,
metadata: EntryMetadata,
) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
pub async fn add_file<'a, P>( &mut self, path: P, payload: impl Into<FilePayload<'a>>, metadata: EntryMetadata, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
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.
Sourcepub async fn add_directory<P>(
&mut self,
path: P,
) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
pub async fn add_directory<P>( &mut self, path: P, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
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.
Sourcepub async fn add_directory_all<P>(
&mut self,
source: P,
) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
pub async fn add_directory_all<P>( &mut self, source: P, ) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
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.
Sourcepub async fn finish(
self,
) -> Result<(), BuildError<<B as ArchiveBuilder>::Error>>
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.