termstatus is a tool that lets you inform the user the progress of your program by displaying the status. It looks similar to the status texts displayed by rustc or cargo.
Simply use $ cargo add termstatus
or add the following dependency to your
Cargo.toml:
[dependencies]
termstatus = "0.2"
Create an enum
whose variants are the different status labels and derive it
from TermStatus
:
extern crate termstatus;
use termstatus::TermStatus;
#[allow(dead_code)]
#[derive(TermStatus)]
enum Status {
Building,
Built,
Compiled,
Compiling,
#[style(red, bold)]
Error,
Finished,
Running,
}
Display
is automatically
implemented for that enum
and can therefore be used with
println
or
format
for example:
println!("{} foo", Status::Building);
println!("{} foo", Status::Built);
println!("{} bar", Status::Compiling);
println!("{} bar", Status::Compiled);
println!("{} build of project", Status::Finished);
The result will look as follows:
Building foo
Built foo
Compiling bar
Compiled bar
Finished build of project
- use of
#[default_style(on_cyan, italic)]
on the derivedenum
- support of bright colors
- implement planned features
- include GIF demo in README