diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-08 21:19:11 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-08 21:19:11 +0100 |
| commit | 01597dce460bd9e3075d2db4f2b0d346ea5bfd64 (patch) | |
| tree | e0c2636197d19effe05f4564768fcf44806d9595 /database/src/lib.rs | |
| parent | 4d26fb7d9031bf78233a71c0341b0277a28da973 (diff) | |
| download | jellything-01597dce460bd9e3075d2db4f2b0d346ea5bfd64.tar jellything-01597dce460bd9e3075d2db4f2b0d346ea5bfd64.tar.bz2 jellything-01597dce460bd9e3075d2db4f2b0d346ea5bfd64.tar.zst | |
indexing but its broken
Diffstat (limited to 'database/src/lib.rs')
| -rw-r--r-- | database/src/lib.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/database/src/lib.rs b/database/src/lib.rs index d4b9fba..c4b2d47 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -11,7 +11,7 @@ use anyhow::Result; use jellyobject::{ObjectBuffer, Path}; pub type RowNum = u64; -pub type RowIter = Box<dyn Iterator<Item = Result<RowNum>>>; +pub type RowIter = Box<dyn Iterator<Item = Result<(RowNum, Vec<u8>)>>>; pub trait Database: Send + Sync { fn transaction(&self, f: &mut dyn FnMut(&mut dyn Transaction) -> Result<()>) -> Result<()>; @@ -22,7 +22,10 @@ pub trait Transaction { fn remove(&mut self, row: RowNum) -> Result<()>; fn update(&mut self, row: RowNum, entry: ObjectBuffer) -> Result<()>; fn get(&self, row: RowNum) -> Result<Option<ObjectBuffer>>; - fn query(&mut self, query: Query) -> Result<RowIter>; + fn query<'a>( + &'a mut self, + query: Query, + ) -> Result<Box<dyn Iterator<Item = Result<(RowNum, Vec<u8>)>> + 'a>>; fn query_single(&mut self, query: Query) -> Result<Option<RowNum>>; fn count(&mut self, query: Query) -> Result<u64>; } |