pub struct CheckpointsRepo<'a> { /* private fields */ }Implementations§
Source§impl CheckpointsRepo<'_>
impl CheckpointsRepo<'_>
Sourcepub fn create(&self, new: NewCheckpoint) -> Result<CheckpointRecord>
pub fn create(&self, new: NewCheckpoint) -> Result<CheckpointRecord>
§Errors
Errors if the write statement fails, or if the row cannot be read back afterwards – the reload is what produces the returned record.
Sourcepub fn get(&self, id: &str) -> Result<Option<CheckpointRecord>>
pub fn get(&self, id: &str) -> Result<Option<CheckpointRecord>>
§Errors
Errors if the query fails or the stored row does not decode. A row that is
not there is Ok(None), not an error.
Sourcepub fn set_approval(&self, id: &str, approval_id: &str) -> Result<()>
pub fn set_approval(&self, id: &str, approval_id: &str) -> Result<()>
§Errors
Errors if the statement fails.
Sourcepub fn delete(&self, id: &str) -> Result<bool>
pub fn delete(&self, id: &str) -> Result<bool>
Delete a checkpoint row outright. Returns whether a row was removed.
F23 (RC-F): coordinates the on-disk checkpoint-dir GC
(crate::checkpoint::gc_old_checkpoint_dirs) with the DB. The dir GC
prunes by mtime regardless of archive state, while storage Self /
gc() only removes ARCHIVED checkpoint rows — so a never-archived old
checkpoint would lose its directory while its row survived, and a later
restore_checkpoint would fail on the missing manifest. The dir GC now
calls this so list() and the on-disk dirs stay in agreement.
§Errors
Errors if the DELETE fails. A checkpoint that was not there is Ok(false),
not an error.
Sourcepub fn list(&self, limit: usize) -> Result<Vec<CheckpointRecord>>
pub fn list(&self, limit: usize) -> Result<Vec<CheckpointRecord>>
§Errors
Errors if the statement fails.
Sourcepub fn list_all(&self, limit: usize) -> Result<Vec<CheckpointRecord>>
pub fn list_all(&self, limit: usize) -> Result<Vec<CheckpointRecord>>
§Errors
Errors if the statement fails.
Sourcepub fn list_for_session(
&self,
session_id: &str,
after_message_index: i64,
) -> Result<Vec<CheckpointRecord>>
pub fn list_for_session( &self, session_id: &str, after_message_index: i64, ) -> Result<Vec<CheckpointRecord>>
Unarchived checkpoints of session_id anchored STRICTLY past
after_message_index, oldest first. Strict > is the fork-boundary
invariant: a fork at user-message index k keeps messages[..k], and
a checkpoint stamped message_index == k snapshotted state from
BEFORE that user message existed — it belongs to the kept prefix, not
the discarded timeline. Oldest-first because each checkpoint is a
PRE-mutation snapshot: the oldest one past the cut holds the file
state closest to the fork point.
§Errors
Errors if the statement fails to prepare or run, or if any row does not decode – one undecodable row fails the whole call.
Sourcepub fn archive(&self, ids: &[String], reason: &str) -> Result<usize>
pub fn archive(&self, ids: &[String], reason: &str) -> Result<usize>
§Errors
Errors if any one of the per-id updates fails, and stops there – the ids before it stay archived, because the loop runs outside a transaction. The count is of rows actually changed, so ids already archived add nothing and are not an error.
Sourcepub fn count_archived(&self) -> Result<usize>
pub fn count_archived(&self) -> Result<usize>
§Errors
Errors if the count query fails.