use super::{DupTable, ReadTransaction, RegularTable, WriteTransaction};
pub trait Database: Sized {
type ReadTransaction<'db>: ReadTransaction<'db>
where
Self: 'db;
type WriteTransaction<'db>: WriteTransaction<'db>
where
Self: 'db;
fn create_regular_table<T: RegularTable>(&self, table: &T);
fn create_dup_table<T: DupTable>(&self, table: &T);
fn read_transaction(&self) -> Self::ReadTransaction<'_>;
fn write_transaction(&self) -> Self::WriteTransaction<'_>;
}