pub struct CheckpointsRepo<'a> { /* private fields */ }Implementations§
Source§impl CheckpointsRepo<'_>
impl CheckpointsRepo<'_>
pub fn create(&self, new: NewCheckpoint) -> Result<CheckpointRecord, Error>
pub fn get(&self, id: &str) -> Result<Option<CheckpointRecord>, Error>
pub fn set_approval(&self, id: &str, approval_id: &str) -> Result<(), Error>
Sourcepub fn delete(&self, id: &str) -> Result<bool, Error>
pub fn delete(&self, id: &str) -> Result<bool, Error>
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.
pub fn list(&self, limit: usize) -> Result<Vec<CheckpointRecord>, Error>
pub fn list_all(&self, limit: usize) -> Result<Vec<CheckpointRecord>, Error>
Sourcepub fn list_for_session(
&self,
session_id: &str,
after_message_index: i64,
) -> Result<Vec<CheckpointRecord>, Error>
pub fn list_for_session( &self, session_id: &str, after_message_index: i64, ) -> Result<Vec<CheckpointRecord>, Error>
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.
pub fn archive(&self, ids: &[String], reason: &str) -> Result<usize, Error>
pub fn count_archived(&self) -> Result<usize, Error>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more