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}