diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-16 04:21:10 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-16 04:21:10 +0100 |
| commit | 30e13399fa9f815cd1884fe87914cdb22d1985af (patch) | |
| tree | ea5b22431b73264c120fcb06560ff158c08ed8a4 /database/src/table.rs | |
| parent | 9b5d11a2a39e0030ce4eeab8905972f9472c7d27 (diff) | |
| download | jellything-30e13399fa9f815cd1884fe87914cdb22d1985af.tar jellything-30e13399fa9f815cd1884fe87914cdb22d1985af.tar.bz2 jellything-30e13399fa9f815cd1884fe87914cdb22d1985af.tar.zst | |
begin refactor import
Diffstat (limited to 'database/src/table.rs')
| -rw-r--r-- | database/src/table.rs | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/database/src/table.rs b/database/src/table.rs index 27db06e..eea7c3a 100644 --- a/database/src/table.rs +++ b/database/src/table.rs @@ -32,21 +32,21 @@ impl Table { key.extend(row.to_be_bytes()); key } - pub fn insert(&self, db: &mut dyn WriteTransaction, entry: ObjectBuffer) -> Result<RowNum> { - let mut id_counter = db + pub fn insert(&self, txn: &mut dyn WriteTransaction, entry: ObjectBuffer) -> Result<RowNum> { + let mut id_counter = txn .get(&self.id.to_be_bytes())? .map(|k| k.as_slice().try_into().map(RowNum::from_be_bytes).ok()) .flatten() .unwrap_or(0); let row = id_counter; id_counter += 1; - db.set(&self.id.to_be_bytes(), &id_counter.to_be_bytes())?; + txn.set(&self.id.to_be_bytes(), &id_counter.to_be_bytes())?; - db.set(&self.key(row), bytemuck::cast_slice(entry.0.as_slice()))?; + txn.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, ob)?; + idx.add(txn, row, ob)?; } Ok(id_counter) @@ -55,8 +55,8 @@ impl Table { self.indices.push(Box::new(index.clone())); index } - pub fn get(&self, db: &dyn ReadTransaction, row: RowNum) -> Result<Option<ObjectBuffer>> { - Ok(db.get(&self.key(row))?.map(ObjectBuffer::from)) + pub fn get(&self, txn: &dyn ReadTransaction, row: RowNum) -> Result<Option<ObjectBuffer>> { + Ok(txn.get(&self.key(row))?.map(ObjectBuffer::from)) } pub fn remove(&self, db: &mut dyn WriteTransaction, row: RowNum) -> Result<bool> { let Some(entry) = self.get(db, row)? else { @@ -71,20 +71,20 @@ impl Table { } pub fn update( &self, - db: &mut dyn WriteTransaction, + txn: &mut dyn WriteTransaction, row: RowNum, entry: ObjectBuffer, ) -> Result<()> { - let before = self.get(db, row)?.ok_or(anyhow!("row to update missing"))?; + let before = self.get(txn, row)?.ok_or(anyhow!("row to update missing"))?; let before = before.as_object(); let after = entry.as_object(); - db.set(&self.key(row), bytemuck::cast_slice(entry.0.as_slice()))?; + txn.set(&self.key(row), bytemuck::cast_slice(entry.0.as_slice()))?; for idx in &self.indices { if !idx.compare(before, after) { - idx.remove(db, row, before)?; - idx.add(db, row, after)?; + idx.remove(txn, row, before)?; + idx.add(txn, row, after)?; } } @@ -92,12 +92,12 @@ impl Table { } pub fn query( &self, - db: &dyn ReadTransaction, + txn: &dyn ReadTransaction, query: Query, ) -> Box<dyn Iterator<Item = RowNum>> { todo!() } - pub fn query_single(&self, db: &dyn ReadTransaction, query: Query) -> Option<RowNum> { - self.query(db, query).next() + pub fn query_single(&self, txn: &dyn ReadTransaction, query: Query) -> Option<RowNum> { + self.query(txn, query).next() } } |