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§
Required Methods§
Sourceasync fn finish_archive(&mut self) -> Result<(), BuildFailure<Self::Error>>
async fn finish_archive(&mut self) -> Result<(), BuildFailure<Self::Error>>
Writes any format-specific archive terminator or index.
Sourceasync fn write_file_member(
&mut self,
path: &str,
payload: &mut EntryPayload<'_>,
metadata: EntryMetadata,
) -> Result<(), BuildFailure<Self::Error>>
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.
Sourceasync fn write_directory_member(
&mut self,
path: &str,
) -> Result<(), BuildFailure<Self::Error>>
async fn write_directory_member( &mut self, path: &str, ) -> Result<(), BuildFailure<Self::Error>>
Writes one directory member.
Sourceasync fn write_symbolic_link_member(
&mut self,
path: &str,
target: &str,
) -> Result<(), BuildFailure<Self::Error>>
async fn write_symbolic_link_member( &mut self, path: &str, target: &str, ) -> Result<(), BuildFailure<Self::Error>>
Writes one symbolic-link member.
Provided Methods§
Sourcefn builder(self) -> Builder<Self>
fn builder(self) -> Builder<Self>
Wraps this format writer in a builder using default policy.
Implementors should not override this default implementation.
Sourcefn builder_with_policy(self, policy: BuilderPolicy) -> Builder<Self>
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".