Skip to main content

ClientDatabaseStorageBackend

Trait ClientDatabaseStorageBackend 

Source
pub trait ClientDatabaseStorageBackend:
    Debug
    + Send
    + Sync
    + 'static {
    // Required methods
    fn num_pages(&self) -> u32;
    fn read(
        &self,
        buffer: Vec<AlignedPage>,
        length: u32,
        offset: u32,
    ) -> Receiver<Result<Vec<AlignedPage>>>;
    fn write(
        &self,
        buffer: Vec<AlignedPage>,
        offset: u32,
    ) -> Receiver<Result<Vec<AlignedPage>>>;
}
Expand description

Storage backend to be used by ClientDatabase

Required Methods§

Source

fn num_pages(&self) -> u32

Total number of pages available for reads/writes

Source

fn read( &self, buffer: Vec<AlignedPage>, length: u32, offset: u32, ) -> Receiver<Result<Vec<AlignedPage>>>

Reading into aligned memory.

length is the number of AlignedPage units (pages) to read into (append to) buffer. offset is in pages too.

Source

fn write( &self, buffer: Vec<AlignedPage>, offset: u32, ) -> Receiver<Result<Vec<AlignedPage>>>

Writing from aligned memory.

offset is in AlignedPage units (pages). After successful writing returns allocated pages back to the caller.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§