Skip to main content

ArchiveBuilder

Trait ArchiveBuilder 

Source
pub trait ArchiveBuilder: Sized {
    type Error;

    // Required methods
    async fn finish_archive(&mut self) -> Result<(), BuildFailure<Self::Error>>;
    async fn write_file_member(
        &mut self,
        path: &str,
        payload: &mut FilePayload<'_>,
        metadata: EntryMetadata,
    ) -> Result<(), BuildFailure<Self::Error>>;
    async fn write_directory_member(
        &mut self,
        path: &str,
    ) -> Result<(), BuildFailure<Self::Error>>;
    async fn write_symbolic_link_member(
        &mut self,
        path: &str,
        target: &str,
    ) -> Result<(), BuildFailure<Self::Error>>;

    // Provided method
    fn builder(self) -> Builder<Self> { ... }
}
Expand description

A format-specific archive writer that can create a stateful Builder.

The asynchronous methods on this trait are implementation hooks for Builder. Archive construction callers must not invoke them directly; doing so bypasses builder policy, collision tracking, and cancellation poisoning. Use Self::builder and then the Builder APIs instead.

Hook implementations must return BuildFailure::recoverable only when the failed invocation wrote no output. Any failure after output may have begun must use BuildFailure::poisoned.

Required Associated Types§

Source

type Error

The archive-format error returned while encoding entries.

Required Methods§

Source

async fn finish_archive(&mut self) -> Result<(), BuildFailure<Self::Error>>

Writes any format-specific archive terminator or index.

Source

async fn write_file_member( &mut self, path: &str, payload: &mut FilePayload<'_>, metadata: EntryMetadata, ) -> Result<(), BuildFailure<Self::Error>>

Writes one regular-file member and its complete payload.

Implementations must call FilePayload::next_chunk through completion and classify failures using BuildFailure.

Source

async fn write_directory_member( &mut self, path: &str, ) -> Result<(), BuildFailure<Self::Error>>

Writes one directory member.

Writes one symbolic-link member.

Provided Methods§

Source

fn builder(self) -> Builder<Self>

Wraps this format writer in a builder using default policy.

Implementors should not override this default implementation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§