pub trait LockFreeBucket: Sized {
type InitData: Clone;
// Required methods
fn new_serialized_data_format(
path: &Path,
data: &Self::InitData,
index: usize,
data_format: &[u8],
) -> Self;
fn set_checkpoint_data<T: Encode>(
&self,
data: Option<&T>,
passtrough_range: Option<FileRangeReference>,
);
fn get_bucket_size(&self) -> u64;
fn write_data(&self, bytes: &[u8]) -> u64;
fn get_path(&self) -> PathBuf;
fn finalize(self);
// Provided method
fn new<T: Encode>(
path: &Path,
data: &Self::InitData,
index: usize,
data_format: &T,
) -> Self { ... }
}
Required Associated Types§
Required Methods§
fn new_serialized_data_format( path: &Path, data: &Self::InitData, index: usize, data_format: &[u8], ) -> Self
fn set_checkpoint_data<T: Encode>( &self, data: Option<&T>, passtrough_range: Option<FileRangeReference>, )
fn get_bucket_size(&self) -> u64
fn write_data(&self, bytes: &[u8]) -> u64
fn get_path(&self) -> PathBuf
fn finalize(self)
Provided Methods§
fn new<T: Encode>( path: &Path, data: &Self::InitData, index: usize, data_format: &T, ) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.