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 EntryPayload<'_>,
        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 methods
    fn builder(self) -> Builder<Self> { ... }
    fn builder_with_policy(self, policy: BuilderPolicy) -> 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 or Self::builder_with_policy 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 EntryPayload<'_>, metadata: EntryMetadata, ) -> Result<(), BuildFailure<Self::Error>>

Writes one regular-file member and its complete payload.

Implementations must call EntryPayload::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.

Source

fn builder_with_policy(self, policy: BuilderPolicy) -> Builder<Self>

Wraps this format writer in a builder using 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§