aboutsummaryrefslogtreecommitdiff
path: root/database
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-06 23:43:05 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-06 23:43:05 +0100
commitf932d4de439c6472d34ed4bbf530fca13b84d73a (patch)
treeb64f28fc6bdf40a38ed6e08cc7ce4602d3a4c537 /database
parentffa6b5c4ae2cdd3e07426ed0330f3f66e90ee57b (diff)
downloadjellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar
jellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar.bz2
jellything-f932d4de439c6472d34ed4bbf530fca13b84d73a.tar.zst
object insert
Diffstat (limited to 'database')
-rw-r--r--database/src/table.rs11
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)