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.rs49
1 files changed, 0 insertions, 49 deletions
diff --git a/database/src/backends/mod.rs b/database/src/backends/mod.rs
deleted file mode 100644
index 1a3998f..0000000
--- a/database/src/backends/mod.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- This file is part of jellything (https://codeberg.org/metamuffin/jellything)
- which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
- Copyright (C) 2026 metamuffin <metamuffin.org>
-*/
-
-mod memory;
-mod redb;
-mod rocksdb;
-
-use anyhow::{Result, bail};
-use std::{path::Path, sync::Arc};
-
-pub use memory::new as new_memory;
-pub use redb::new as new_redb;
-pub use rocksdb::new as new_rocksdb;
-
-pub type WriteTxnFunction = dyn FnMut(&mut dyn WriteTransaction) -> Result<()>;
-pub type ReadTxnFunction = dyn FnMut(&dyn ReadTransaction) -> 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<()>;
- fn del(&mut self, key: &[u8]) -> Result<()>;
-}
-pub trait ReadTransaction {
- fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>>;
- fn iter<'a>(
- &'a self,
- key: &[u8],
- reverse: bool,
- ) -> Result<Box<dyn Iterator<Item = Result<Vec<u8>>> + 'a>>;
-}
-
-pub fn create_database(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()),
- _ => bail!("unknown db driver"),
- })
-}