Trait LockFreeBucket

Source
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§

Source

fn new_serialized_data_format( path: &Path, data: &Self::InitData, index: usize, data_format: &[u8], ) -> Self

Source

fn set_checkpoint_data<T: Encode>( &self, data: Option<&T>, passtrough_range: Option<FileRangeReference>, )

Source

fn get_bucket_size(&self) -> u64

Source

fn write_data(&self, bytes: &[u8]) -> u64

Source

fn get_path(&self) -> PathBuf

Source

fn finalize(self)

Provided Methods§

Source

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.

Implementors§