aboutsummaryrefslogtreecommitdiff
path: root/database/src/lib.rs
diff options
context:
space:
mode:
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;