Skip to content
Procedure allows to execute tasks with a visual indication to the end user in the stdout.
Rust
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
Cargo.toml
LICENSE
README.md

README.md

Procedure

Procedure allows to execute tasks with a visual indication to the end user in the stdout.

This is inteted to be used as a command line display.

Sample Image

Features

  • Padded action display (like the rust compiler / cargo).
  • Colored output (Yello = Running, Green = Succeed, Red = Failed).
  • Provide a description for the task.
  • Percentage progress indication at your need (updates on the screen).

Samples

let a = proceed("Download", "example_file.jpg", |progress: &mut Progress| -> Result<(&str, &str), &str> {
    for _ in 0..100 {
        std::thread::sleep(std::time::Duration::from_millis(10));
        progress.increment(1);
    }
    Ok(("256KB", "example_file.jpg [256 KB]"))
});
assert_eq!(a.unwrap(), "256KB");
let b = proceed("Download", "some_other.zip", |progress: &mut Progress| -> Result<(&str, &str), &str> {
    let min = 500;
    let max = 1000;
    for i in min..max {
        std::thread::sleep(std::time::Duration::from_millis(5));
        progress.set_from(min, max, i);
        if i == 975 {
            return Err("some_other.zip [Failed]");
        }
    }
    Ok(("1MB", "some_other.zip [1 MB]"))
});
assert_eq!(b.unwrap_err(), "some_other.zip [Failed]");
You can’t perform that action at this time.