Skip to main content

StorageDriver

Trait StorageDriver 

Source
pub trait StorageDriver: Send + Sync {
    // Required methods
    fn capabilities(&self) -> DriverCapabilities;
    fn write(&self, key: &str, data: &[u8]) -> Result<(), StorageError>;
    fn append(&self, key: &str, data: &[u8]) -> Result<(), StorageError>;
    fn read(&self, key: &str) -> Result<Vec<u8>, StorageError>;
    fn read_range(
        &self,
        key: &str,
        offset: usize,
        len: usize,
    ) -> Result<Vec<u8>, StorageError>;
    fn delete(&self, key: &str) -> Result<(), StorageError>;
    fn snapshot(&self, snapshot_id: &str) -> Result<(), StorageError>;
    fn flush(&self) -> Result<(), StorageError>;
    fn prefetch_hint(&self, key: &str);
    fn eviction_hint(&self, key: &str);
    fn describe(&self) -> &str;
}

Required Methods§

Source

fn capabilities(&self) -> DriverCapabilities

Source

fn write(&self, key: &str, data: &[u8]) -> Result<(), StorageError>

Source

fn append(&self, key: &str, data: &[u8]) -> Result<(), StorageError>

Source

fn read(&self, key: &str) -> Result<Vec<u8>, StorageError>

Source

fn read_range( &self, key: &str, offset: usize, len: usize, ) -> Result<Vec<u8>, StorageError>

Source

fn delete(&self, key: &str) -> Result<(), StorageError>

Source

fn snapshot(&self, snapshot_id: &str) -> Result<(), StorageError>

Create a point-in-time snapshot named snapshot_id. On APFS this calls clonefile(2) and is O(1), zero-cost on disk.

Source

fn flush(&self) -> Result<(), StorageError>

Source

fn prefetch_hint(&self, key: &str)

Source

fn eviction_hint(&self, key: &str)

Source

fn describe(&self) -> &str

Implementors§