diff --git a/chorus-lib/src/store/mod.rs b/chorus-lib/src/store/mod.rs index 51b5707..2aa3e92 100644 --- a/chorus-lib/src/store/mod.rs +++ b/chorus-lib/src/store/mod.rs @@ -28,7 +28,10 @@ pub struct Store { atc_index: Database, OwnedType>, ktc_index: Database, OwnedType>, deleted_offsets: Database, Unit>, + + // this is for events deleted by other events deleted_events: Database, Unit>, + ip_data: Database, UnalignedSlice>, } @@ -255,6 +258,14 @@ impl Store { Ok(offset) } + // This deletes an event without marking it as having been deleted by another event + pub fn delete_event(&self, id: Id) -> Result<(), Error> { + let mut txn = self.env.write_txn()?; + self.delete(&mut txn, id)?; + txn.commit()?; + Ok(()) + } + pub fn handle_deletion_event(&self, txn: &mut RwTxn<'_>, event: &Event) -> Result<(), Error> { for mut tag in event.tags()?.iter() { if let Some(tagname) = tag.next() { @@ -667,7 +678,10 @@ impl Store { .collect()) } - /// Delete an event by id + /// Delete an event by id. + /// + /// This does not add to the deleted_events record, which is for events + /// that are deleted by other events fn delete(&self, txn: &mut RwTxn<'_>, id: Id) -> Result<(), Error> { if let Some(offset) = self.i_index.get(txn, id.0.as_slice())? { self.set_offset_as_deleted(txn, offset)?;