From f932d4de439c6472d34ed4bbf530fca13b84d73a Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 6 Jan 2026 23:43:05 +0100 Subject: object insert --- database/src/table.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'database/src') 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 */ -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 { + pub fn insert(&self, db: &mut dyn WriteTransaction, entry: ObjectBuffer) -> Result { 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) -- cgit v1.3