diskann_disk/build/chunking/checkpoint/
progress.rs1#[derive(Debug, Clone)]
7pub enum Progress {
8 Completed,
9 Processed(usize ),
10}
11
12impl Progress {
13 pub fn map(self, f: impl Fn(usize) -> usize) -> Progress {
14 match self {
15 Progress::Completed => Progress::Completed,
16 Progress::Processed(progress) => Progress::Processed(f(progress)),
17 }
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn test_progress_map_processed() {
27 let progress = Progress::Processed(10);
28 let mapped = progress.map(|n| n * 2);
29 match mapped {
30 Progress::Processed(n) => assert_eq!(n, 20),
31 _ => panic!("Expected Processed variant"),
32 }
33 }
34
35 #[test]
36 fn test_progress_map_completed() {
37 let progress = Progress::Completed;
38 let mapped = progress.map(|n| n * 2);
39 match mapped {
40 Progress::Completed => {}
41 _ => panic!("Expected Completed variant"),
42 }
43 }
44}