db_rs/
db.rs

1use crate::{Config, DbResult, Logger, TxHandle};
2
3pub trait Db: Sized {
4    fn init(location: Config) -> DbResult<Self>;
5    fn compact_log(&mut self) -> DbResult<()>;
6    fn get_logger(&self) -> &Logger;
7    fn config(&self) -> DbResult<Config> {
8        self.get_logger().config()
9    }
10    fn incomplete_write(&self) -> DbResult<bool> {
11        self.get_logger().incomplete_write()
12    }
13    fn begin_transaction(&mut self) -> DbResult<TxHandle> {
14        self.get_logger().begin_tx()
15    }
16}