From b2e88a8beabf04adc28947cf82996e8692a68b71 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 24 Jan 2026 04:31:48 +0100 Subject: move things around; kv crate --- database/src/backends/mod.rs | 49 -------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 database/src/backends/mod.rs (limited to 'database/src/backends/mod.rs') 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 -*/ - -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>>; - fn iter<'a>( - &'a self, - key: &[u8], - reverse: bool, - ) -> Result>> + 'a>>; -} - -pub fn create_database(driver: &str, path: &Path) -> Result> { - Ok(match driver { - "rocksdb" => Arc::new(rocksdb::new(path)?), - "redb" => Arc::new(redb::new(path)?), - "memory" => Arc::new(memory::new()), - _ => bail!("unknown db driver"), - }) -} -- cgit v1.3