1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::{Config, DbResult, Logger, TxHandle};

pub trait Db: Sized {
    fn init(location: Config) -> DbResult<Self>;
    fn compact_log(&mut self) -> DbResult<()>;
    fn get_logger(&self) -> &Logger;
    fn config(&self) -> DbResult<Config> {
        self.get_logger().config()
    }
    fn incomplete_write(&self) -> DbResult<bool> {
        self.get_logger().incomplete_write()
    }
    fn begin_transaction(&mut self) -> DbResult<TxHandle> {
        self.get_logger().begin_tx()
    }
}