3 unstable releases

0.2.0 May 30, 2023
0.1.1 May 29, 2023
0.1.0 May 29, 2023

#226 in #status

23 downloads per month
Used in mcfn

MIT license

13KB
180 lines

termstatus

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.

Installation

Simply use $ cargo add termstatus or add the following dependency to your Cargo.toml:

[dependencies]
termstatus = "0.2"

Usage

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

Planned Features

  • use of #[default_style(on_aqua, italic)] on the derived enum

TODO

Dependencies

~305–770KB
~19K SLoC