casper_storage/block_store/
block_provider.rs1use super::error::BlockStoreError;
2
3pub trait BlockStoreProvider {
5 type Reader<'a>: BlockStoreTransaction
7 where
8 Self: 'a;
9 type ReaderWriter<'a>: BlockStoreTransaction
11 where
12 Self: 'a;
13
14 fn checkout_ro(&self) -> Result<Self::Reader<'_>, BlockStoreError>;
16 fn checkout_rw(&mut self) -> Result<Self::ReaderWriter<'_>, BlockStoreError>;
18}
19
20pub trait BlockStoreTransaction {
22 fn commit(self) -> Result<(), BlockStoreError>;
24
25 fn rollback(self);
27}
28
29pub trait DataReader<K, T> {
31 fn read(&self, key: K) -> Result<Option<T>, BlockStoreError>;
33 fn exists(&self, key: K) -> Result<bool, BlockStoreError>;
35}
36
37pub trait DataWriter<K, T> {
39 fn write(&mut self, data: &T) -> Result<K, BlockStoreError>;
41 fn delete(&mut self, key: K) -> Result<(), BlockStoreError>;
43}