diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-12-16 04:30:42 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-12-16 04:30:42 +0100 |
| commit | fc7f3ae8e39a0398ceba7b9c44f58679c01a98da (patch) | |
| tree | 77eef4d5e5ccb733b15ac4039e0a966f88ee8380 /database/src/lib.rs | |
| parent | 0e48299889c3c2b81bf351ffe5da71e0bcd4c22a (diff) | |
| download | jellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar jellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar.bz2 jellything-fc7f3ae8e39a0398ceba7b9c44f58679c01a98da.tar.zst | |
tables
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; |