pub trait BlockStore: Send + Sync {
// Required methods
fn block_size(&self) -> usize;
fn total_blocks(&self) -> u64;
fn read_block(&self, block_id: u64) -> FsResult<Vec<u8>>;
fn write_block(&self, block_id: u64, data: &[u8]) -> FsResult<()>;
// Provided methods
fn sync(&self) -> FsResult<()> { ... }
fn read_blocks(&self, block_ids: &[u64]) -> FsResult<Vec<Vec<u8>>> { ... }
fn write_blocks(&self, blocks: &[(u64, &[u8])]) -> FsResult<()> { ... }
}Expand description
Trait for a fixed-size block store backend. All blocks are the same size. Block IDs are u64.
Required Methods§
Sourcefn block_size(&self) -> usize
fn block_size(&self) -> usize
Block size in bytes.
Sourcefn total_blocks(&self) -> u64
fn total_blocks(&self) -> u64
Total number of blocks in the store.