Trait exocore_chain::chain::ChainStore[][src]

pub trait ChainStore: Send + Sync + 'static {
    fn segments(&self) -> Segments;
fn write_block<B: Block>(&mut self, block: &B) -> Result<BlockOffset, Error>;
fn blocks_iter(
        &self,
        from_offset: BlockOffset
    ) -> Box<dyn Iterator<Item = Result<DataBlock<ChainData>, Error>> + '_>;
fn blocks_iter_reverse(
        &self,
        from_next_offset: BlockOffset
    ) -> Box<dyn Iterator<Item = Result<DataBlock<ChainData>, Error>> + '_>;
fn get_block(
        &self,
        offset: BlockOffset
    ) -> Result<DataBlock<ChainData>, Error>;
fn get_block_from_next_offset(
        &self,
        next_offset: BlockOffset
    ) -> Result<DataBlock<ChainData>, Error>;
fn get_last_block(&self) -> Result<Option<DataBlock<ChainData>>, Error>;
fn get_block_by_operation_id(
        &self,
        operation_id: OperationId
    ) -> Result<Option<DataBlock<ChainData>>, Error>;
fn truncate_from_offset(&mut self, offset: BlockOffset) -> Result<(), Error>; }
Expand description

Persistence for the chain

Required methods

Implementors