Skip to content

phoenixr-codes/termstatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

docs.rs Crates.io

cargolike preview with_style preview

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_cyan, italic)] on the derived enum
  • support of bright colors

TODO