pub struct CheckpointManager {
pub base_dir: PathBuf,
pub max_checkpoints: usize,
pub interval_steps: u64,
}Expand description
Manages a rolling set of checkpoint files in a directory.
Checkpoints are named checkpoint_NNNNNNNNNN.bin where N is the
zero-padded step number.
Fields§
§base_dir: PathBufBase directory for checkpoint files.
max_checkpoints: usizeMaximum number of checkpoints to keep.
interval_steps: u64Write a checkpoint every interval_steps steps.
Implementations§
Source§impl CheckpointManager
impl CheckpointManager
Sourcepub fn new(
base_dir: impl Into<PathBuf>,
max_checkpoints: usize,
interval_steps: u64,
) -> Self
pub fn new( base_dir: impl Into<PathBuf>, max_checkpoints: usize, interval_steps: u64, ) -> Self
Construct a new CheckpointManager.
Sourcepub fn should_checkpoint(&self, step: u64) -> bool
pub fn should_checkpoint(&self, step: u64) -> bool
Return true when a checkpoint should be written at step.
Always returns true for step 0 if interval_steps > 0.
Sourcepub fn checkpoint_path(&self, step: u64) -> PathBuf
pub fn checkpoint_path(&self, step: u64) -> PathBuf
Compute the canonical path for the checkpoint at step.
Sourcepub fn list_checkpoints(&self) -> Vec<PathBuf>
pub fn list_checkpoints(&self) -> Vec<PathBuf>
Return a sorted list of existing checkpoint file paths in base_dir.
Sourcepub fn latest_checkpoint(&self) -> Option<PathBuf>
pub fn latest_checkpoint(&self) -> Option<PathBuf>
Return the path to the most recent (highest step) checkpoint, if any.
Sourcepub fn prune_old_checkpoints(&self) -> Result<()>
pub fn prune_old_checkpoints(&self) -> Result<()>
Delete oldest checkpoints, keeping at most max_checkpoints files.
Trait Implementations§
Source§impl Clone for CheckpointManager
impl Clone for CheckpointManager
Source§fn clone(&self) -> CheckpointManager
fn clone(&self) -> CheckpointManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CheckpointManager
impl RefUnwindSafe for CheckpointManager
impl Send for CheckpointManager
impl Sync for CheckpointManager
impl Unpin for CheckpointManager
impl UnsafeUnpin for CheckpointManager
impl UnwindSafe for CheckpointManager
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.