aboutsummaryrefslogtreecommitdiff
path: root/database/src/backends/mod.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-14 22:13:19 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-14 22:13:19 +0100
commit8c0ee6d17fe0dbd7748e7b60ff01a0e8f25faa51 (patch)
tree1ff5856dec2a359f01a340e428704b028df38e51 /database/src/backends/mod.rs
parent314b9cf6eddda6d0a3c5bd153e960873622224b1 (diff)
downloadjellything-8c0ee6d17fe0dbd7748e7b60ff01a0e8f25faa51.tar
jellything-8c0ee6d17fe0dbd7748e7b60ff01a0e8f25faa51.tar.bz2
jellything-8c0ee6d17fe0dbd7748e7b60ff01a0e8f25faa51.tar.zst
implement db trait without wrappers
Diffstat (limited to 'database/src/backends/mod.rs')
-rw-r--r--database/src/backends/mod.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/database/src/backends/mod.rs b/database/src/backends/mod.rs
index 580548e..4cbb4cf 100644
--- a/database/src/backends/mod.rs
+++ b/database/src/backends/mod.rs
@@ -4,18 +4,17 @@
Copyright (C) 2026 metamuffin <metamuffin.org>
*/
-pub mod memory;
-pub mod redb;
-pub mod rocksdb;
+mod memory;
+mod redb;
+mod rocksdb;
-use crate::backends::{memory::Memory, redb::Redb, rocksdb::Rocksdb};
use anyhow::{Result, bail};
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 Db {
+pub trait Database {
fn write_transaction(&self, f: &mut WriteTxnFunction) -> Result<()>;
fn read_transaction(&self, f: &mut ReadTxnFunction) -> Result<()>;
}
@@ -32,11 +31,11 @@ pub trait ReadTransaction {
) -> Result<Box<dyn Iterator<Item = Result<Vec<u8>>> + 'a>>;
}
-pub fn create_backend(driver: &str, path: &Path) -> Result<Arc<dyn Db>> {
+pub fn create_backend(driver: &str, path: &Path) -> Result<Arc<dyn Database>> {
Ok(match driver {
- "rocksdb" => Arc::new(Rocksdb::new(path)?),
- "redb" => Arc::new(Redb::new(path)?),
- "memory" => Arc::new(Memory::new()),
+ "rocksdb" => Arc::new(rocksdb::new(path)?),
+ "redb" => Arc::new(redb::new(path)?),
+ "memory" => Arc::new(memory::new()),
_ => bail!("unknown db driver"),
})
}