procedure

Crates.ioprocedure
lib.rsprocedure
version0.3.0
sourcesrc
created_at2019-11-11 16:08:37.690492
updated_at2019-12-06 14:14:54.289533
descriptionProcedure allows to execute tasks with a visual indication to the end user in the stdout.
homepagehttps://erik.cat
repositoryhttps://github.com/ConsoleTVs/Procedure
max_upload_size
id180294
size10,792
Erik C. Forés (ConsoleTVs)

documentation

README

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]");
Commit count: 7

cargo fmt