aboutsummaryrefslogtreecommitdiff
path: root/database/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-12-16 04:30:42 +0100
committermetamuffin <metamuffin@disroot.org>2025-12-16 04:30:42 +0100
commitfc7f3ae8e39a0398ceba7b9c44f58679c01a98da (patch)
tree77eef4d5e5ccb733b15ac4039e0a966f88ee8380 /database/src/lib.rs
parent0e48299889c3c2b81bf351ffe5da71e0bcd4c22a (diff)
downloadjellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar
jellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar.bz2
jellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar.zst
tables
Diffstat (limited to 'database/src/lib.rs')
-rw-r--r--database/src/lib.rs42
1 files changed, 2 insertions, 40 deletions
diff --git a/database/src/lib.rs b/database/src/lib.rs
index 828761e..7618fe7 100644
--- a/database/src/lib.rs
+++ b/database/src/lib.rs
@@ -4,45 +4,7 @@
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
-use anyhow::{Result, bail};
-
-use crate::{
- backends::{KV, memory::Memory, redb::Redb, rocksdb::Rocksdb},
- indices::Index,
-};
-use std::{path::Path, sync::Arc};
-
pub mod backends;
pub mod indices;
-
-pub struct Database {
- storage: Arc<dyn KV>,
-}
-
-impl Database {
- pub fn new(driver: &str, path: &Path) -> Result<Self> {
- Ok(Self {
- storage: match driver {
- "rocksdb" => Arc::new(Rocksdb::new(path)?),
- "redb" => Arc::new(Redb::new(path)?),
- "memory" => Arc::new(Memory::new()),
- _ => bail!("unknown db driver"),
- },
- })
- }
-}
-
-pub struct Table<T> {
- id: u32,
- indices: Vec<Box<dyn Index<T>>>,
- db: Arc<dyn KV>,
-}
-impl<T> Table<T> {
- pub fn new(db: &Database, id: u32) -> Self {
- Self {
- id,
- indices: Vec::new(),
- db: db.storage.clone(),
- }
- }
-}
+pub mod table;
+pub mod transaction;