pub trait CommandUnitOfWork {
// Required methods
fn begin_transaction(&mut self) -> Result<()>;
fn commit(&mut self) -> Result<()>;
fn rollback(&mut self) -> Result<()>;
fn create_savepoint(&self) -> Result<Savepoint>;
fn restore_to_savepoint(&mut self, savepoint: Savepoint) -> Result<()>;
}