diff options
Diffstat (limited to 'database/src/backends/mod.rs')
| -rw-r--r-- | database/src/backends/mod.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/database/src/backends/mod.rs b/database/src/backends/mod.rs index 4cbb4cf..ba30b46 100644 --- a/database/src/backends/mod.rs +++ b/database/src/backends/mod.rs @@ -14,9 +14,13 @@ use std::{path::Path, sync::Arc}; pub type WriteTxnFunction = dyn FnMut(&mut dyn WriteTransaction) -> Result<()>; pub type ReadTxnFunction = dyn FnMut(&dyn ReadTransaction) -> Result<()>; -pub trait Database { - fn write_transaction(&self, f: &mut WriteTxnFunction) -> Result<()>; - fn read_transaction(&self, f: &mut ReadTxnFunction) -> Result<()>; +pub trait Database: Send + Sync + 'static { + fn write_transaction( + &self, + f: &mut dyn FnMut(&mut dyn WriteTransaction) -> Result<()>, + ) -> Result<()>; + fn read_transaction(&self, f: &mut dyn FnMut(&dyn ReadTransaction) -> Result<()>) + -> Result<()>; } pub trait WriteTransaction: ReadTransaction { fn set(&mut self, key: &[u8], value: &[u8]) -> Result<()>; |