Skip to main content

CheckpointsRepo

Struct CheckpointsRepo 

Source
pub struct CheckpointsRepo<'a> { /* private fields */ }

Implementations§

Source§

impl CheckpointsRepo<'_>

Source

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.

Source

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.

Source

pub fn set_approval(&self, id: &str, approval_id: &str) -> Result<()>

§Errors

Errors if the statement fails.

Source

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.

Source

pub fn list(&self, limit: usize) -> Result<Vec<CheckpointRecord>>

§Errors

Errors if the statement fails.

Source

pub fn list_all(&self, limit: usize) -> Result<Vec<CheckpointRecord>>

§Errors

Errors if the statement fails.

Source

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.

Source

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.

Source

pub fn count_archived(&self) -> Result<usize>

§Errors

Errors if the count query fails.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for CheckpointsRepo<'a>

§

impl<'a> !Send for CheckpointsRepo<'a>

§

impl<'a> !Sync for CheckpointsRepo<'a>

§

impl<'a> !UnwindSafe for CheckpointsRepo<'a>

§

impl<'a> Freeze for CheckpointsRepo<'a>

§

impl<'a> Unpin for CheckpointsRepo<'a>

§

impl<'a> UnsafeUnpin for CheckpointsRepo<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more