pub struct CheckpointManager {
pub snapshots: Vec<Snapshot>,
pub full_interval: u64,
pub last_full_idx: Option<usize>,
pub step: u64,
}Expand description
Manages incremental checkpoint/restart for a streaming simulation.
Full snapshots are stored periodically; incremental deltas reduce I/O cost.
Fields§
§snapshots: Vec<Snapshot>Stored snapshots (base + incremental).
full_interval: u64Interval (in steps) between full snapshots.
last_full_idx: Option<usize>Last full snapshot index in snapshots.
step: u64Current step counter.
Implementations§
Source§impl CheckpointManager
impl CheckpointManager
Sourcepub fn full_interval(full_interval: u64) -> Self
pub fn full_interval(full_interval: u64) -> Self
Create a new checkpoint manager.
Sourcepub fn record(&mut self, sim_time: f64, state: &[u8], prev_state: &[u8])
pub fn record(&mut self, sim_time: f64, state: &[u8], prev_state: &[u8])
Record a new snapshot. Decides automatically whether to store a full or incremental (delta) snapshot.
state is the raw state bytes; prev_state is the previous state for
delta encoding (ignored for full snapshots).
Sourcepub fn restore_latest(&self) -> Option<Vec<u8>>
pub fn restore_latest(&self) -> Option<Vec<u8>>
Restore the state at the latest checkpoint by replaying deltas.
Returns None if no snapshots exist.
Sourcepub fn snapshot_count(&self) -> usize
pub fn snapshot_count(&self) -> usize
Number of stored snapshots.
Trait Implementations§
Auto 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<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.