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.

Implementors§