diff options
Diffstat (limited to 'database/src/lib.rs')
| -rw-r--r-- | database/src/lib.rs | 42 |
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; |