progress/
progress.rs

1// SPDX-License-Identifier: MIT
2// Copyright ${YEAR} IROX Contributors
3//
4
5use irox_progress::{console::ConsoleProgressPrinter, ProgressPrinter, Task};
6use irox_time::Duration;
7
8pub fn main() -> Result<(), std::io::Error> {
9    let elements = 1000;
10
11    let prog = ConsoleProgressPrinter::new_update_rate(Duration::from_millis(100));
12    let task = Task::new(0, "Test Task".to_string(), u64::MAX);
13    prog.track_task_progress(&task);
14    task.mark_started();
15    for i in 0..elements {
16        task.mark_one_completed();
17
18        let status = format!("Phase {}", i / 100);
19        task.set_current_status(Some(status));
20
21        std::thread::sleep(std::time::Duration::from_millis(5));
22    }
23
24    Ok(())
25}