pub trait DirectFileDestination: Send + Sync {
// Required methods
fn prepare(
&self,
transfer_id: String,
files: Vec<DirectFileSnapshot>,
) -> Result<(), DirectFileDestinationError>;
fn write(
&self,
file_index: u32,
bytes: Vec<u8>,
) -> Result<(), DirectFileDestinationError>;
fn finish_file(
&self,
file_index: u32,
) -> Result<(), DirectFileDestinationError>;
fn commit(&self) -> Result<Vec<String>, DirectFileDestinationError>;
fn abort(&self);
}Expand description
Each selected destination belongs to one acceptance. abort must remove only
newly created partial outputs; it must never delete or truncate existing files.
prepare must clean its own partial preparation on error, without disturbing an
already-open destination if the same object is accidentally reused.
Required Methods§
fn prepare( &self, transfer_id: String, files: Vec<DirectFileSnapshot>, ) -> Result<(), DirectFileDestinationError>
fn write( &self, file_index: u32, bytes: Vec<u8>, ) -> Result<(), DirectFileDestinationError>
fn finish_file(&self, file_index: u32) -> Result<(), DirectFileDestinationError>
fn commit(&self) -> Result<Vec<String>, DirectFileDestinationError>
fn abort(&self)
Trait Implementations§
Source§impl Debug for dyn DirectFileDestination
impl Debug for dyn DirectFileDestination
Source§impl<T> FfiConverterArc<T> for dyn DirectFileDestination
impl<T> FfiConverterArc<T> for dyn DirectFileDestination
Source§impl<T> LiftRef<T> for dyn DirectFileDestination
impl<T> LiftRef<T> for dyn DirectFileDestination
type LiftType = Arc<dyn DirectFileDestination>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".