aboutsummaryrefslogtreecommitdiff
path: root/database/src/backends/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'database/src/backends/mod.rs')
-rw-r--r--database/src/backends/mod.rs10
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<()>;