Skip to main content

chkpt_core/ops/
progress.rs

1/// Events emitted during save/restore operations for progress reporting.
2pub enum ProgressEvent {
3    // Save events
4    ScanComplete { file_count: u64 },
5    ProcessStart { total: u64 },
6    ProcessFile { completed: u64, total: u64 },
7    PackComplete,
8
9    // Restore events
10    ScanCurrentComplete { file_count: u64 },
11    RestoreStart { add: u64, change: u64, remove: u64 },
12    RestoreFile { completed: u64, total: u64 },
13}
14
15/// Optional progress callback. Pass `None` to disable progress reporting.
16pub type ProgressCallback = Option<Box<dyn Fn(ProgressEvent) + Send + Sync>>;
17
18#[inline]
19pub fn emit(progress: &ProgressCallback, event: ProgressEvent) {
20    if let Some(cb) = progress {
21        cb(event);
22    }
23}