bronzedb_engine/
lib.rs

1use bronzedb_util::status::Error;
2use bronzedb_util::types::{Entry, Key, Value};
3
4pub trait Engine {
5    type Error: Into<Error>;
6    fn set(&mut self, key: Key, value: Value) -> Result<(), Self::Error>;
7    fn get(&self, key: Key) -> Result<Option<Value>, Self::Error>;
8    fn delete(&mut self, key: Key) -> Result<(), Self::Error>;
9    fn scan(
10        &self,
11        lower_bound: Option<Key>,
12        upper_bound: Option<Key>,
13    ) -> Result<Box<dyn Scanner + '_>, Self::Error>;
14}
15
16pub trait Scanner {
17    fn iter(&mut self) -> Box<dyn Iterator<Item = Result<Entry, Error>> + '_>;
18}