Trait tr1pd::storage::BlockStorage
[−]
[src]
pub trait BlockStorage { fn write_bytes(
&mut self,
pointer: &BlockPointer,
bytes: Vec<u8>
) -> Result<()>; fn get_bytes(&self, pointer: &BlockPointer) -> Result<Vec<u8>>; fn get_head(&self) -> Result<BlockPointer>; fn update_head(&mut self, pointer: &BlockPointer) -> Result<()>; fn push(&mut self, block: &Block) -> Result<BlockPointer> { ... } fn get(&self, pointer: &BlockPointer) -> Result<Block> { ... } fn resolve_pointer(&self, spec: SpecPointer) -> Result<BlockPointer> { ... } fn resolve_range(
&self,
spec: (SpecPointer, SpecPointer)
) -> Result<(BlockPointer, BlockPointer)> { ... } fn expand_range(
&self,
range: (BlockPointer, BlockPointer)
) -> Result<Vec<BlockPointer>> { ... } }
Required Methods
fn write_bytes(&mut self, pointer: &BlockPointer, bytes: Vec<u8>) -> Result<()>
fn get_bytes(&self, pointer: &BlockPointer) -> Result<Vec<u8>>
fn get_head(&self) -> Result<BlockPointer>
fn update_head(&mut self, pointer: &BlockPointer) -> Result<()>
Provided Methods
fn push(&mut self, block: &Block) -> Result<BlockPointer>
fn get(&self, pointer: &BlockPointer) -> Result<Block>
fn resolve_pointer(&self, spec: SpecPointer) -> Result<BlockPointer>
fn resolve_range(
&self,
spec: (SpecPointer, SpecPointer)
) -> Result<(BlockPointer, BlockPointer)>
&self,
spec: (SpecPointer, SpecPointer)
) -> Result<(BlockPointer, BlockPointer)>
fn expand_range(
&self,
range: (BlockPointer, BlockPointer)
) -> Result<Vec<BlockPointer>>
&self,
range: (BlockPointer, BlockPointer)
) -> Result<Vec<BlockPointer>>
Implementors
impl BlockStorage for DiskStorage
impl BlockStorage for MemoryStorage
impl BlockStorage for StorageEngine