pub trait RandomAccess {
    // Required methods
    fn write<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        offset: u64,
        data: &'life1 [u8]
    ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn read<'life0, 'async_trait>(
        &'life0 mut self,
        offset: u64,
        length: u64
    ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn del<'life0, 'async_trait>(
        &'life0 mut self,
        offset: u64,
        length: u64
    ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn truncate<'life0, 'async_trait>(
        &'life0 mut self,
        length: u64
    ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn len<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<u64, RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn is_empty<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<bool, RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn sync_all<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Interface for reading from, writing to and deleting from a randomly accessible storage of bytes.

Required Methods§

source

fn write<'life0, 'life1, 'async_trait>( &'life0 mut self, offset: u64, data: &'life1 [u8] ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Write bytes of data at an offset to the backend.

Errors
source

fn read<'life0, 'async_trait>( &'life0 mut self, offset: u64, length: u64 ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Read a sequence of bytes at an offset from the backend.

Errors
source

fn del<'life0, 'async_trait>( &'life0 mut self, offset: u64, length: u64 ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Delete a sequence of bytes of given length at an offset from the backend. This either sets the bytes in the given slice to zeroes, or if offset + length >= RandomAccess::len() is the same as truncate(offset).

Errors
source

fn truncate<'life0, 'async_trait>( &'life0 mut self, length: u64 ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Resize the sequence of bytes so that RandomAccess::len() is set to length. If length < RandomAccess::len(), the bytes are disregarded. If length > RandomAccess::len(), the storage is zero-padded.

Errors
source

fn len<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<u64, RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Get the size of the storage in bytes.

Errors
source

fn is_empty<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<bool, RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Whether the storage is empty. For some storage backends it may be cheaper to calculate whether the storage is empty than to calculate the length.

Errors
source

fn sync_all<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), RandomAccessError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Flush buffered data on the underlying storage resource.

Errors

Implementors§