diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-06 23:43:05 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-06 23:43:05 +0100 |
| commit | f932d4de439c6472d34ed4bbf530fca13b84d73a (patch) | |
| tree | b64f28fc6bdf40a38ed6e08cc7ce4602d3a4c537 /database | |
| parent | ffa6b5c4ae2cdd3e07426ed0330f3f66e90ee57b (diff) | |
| download | jellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar jellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar.bz2 jellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar.zst | |
object insert
Diffstat (limited to 'database')
| -rw-r--r-- | database/src/table.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/database/src/table.rs b/database/src/table.rs index 42e03a3..16b9ed5 100644 --- a/database/src/table.rs +++ b/database/src/table.rs @@ -4,14 +4,12 @@ Copyright (C) 2026 metamuffin <metamuffin.org> */ -use std::sync::Arc; - use crate::{ backends::{ReadTransaction, WriteTransaction}, indices::Index, }; use anyhow::Result; -use jellycommon::jellyobject::{Object, ObjectBuffer}; +use jellycommon::jellyobject::ObjectBuffer; pub type TableNum = u64; pub type RowNum = u64; @@ -33,7 +31,7 @@ impl Table { key.extend(row.to_be_bytes()); key } - pub fn insert(&self, db: &mut dyn WriteTransaction, entry: T) -> Result<RowNum> { + pub fn insert(&self, db: &mut dyn WriteTransaction, entry: ObjectBuffer) -> Result<RowNum> { let mut id_counter = db .get(&self.id.to_be_bytes())? .map(|k| k.as_slice().try_into().map(RowNum::from_be_bytes).ok()) @@ -43,10 +41,11 @@ impl Table { id_counter += 1; db.set(&self.id.to_be_bytes(), &id_counter.to_be_bytes())?; - db.set(&self.key(row), &serde_json::to_vec(&entry)?)?; + db.set(&self.key(row), bytemuck::cast_slice(entry.0.as_slice()))?; + let ob = entry.as_object(); for idx in &self.indices { - idx.add(db, row, &entry)?; + idx.add(db, row, ob)?; } Ok(id_counter) |