colorable is a library that makes printing colored output to the console easy.
toml
[dependecies]
colorable = "0.1.0"
That's the only dependency you need
colorable allows you to style console output using ANSI escape sequences.
It allows this for any types that implement std::fmt::Display
or std::fmt::Debug
.
std::fmt::Display
Basic example: ```rust use colorable::*;
fn main() {
println!("{}", 1.green());
println!("{}", 2.blue().bold());
println!("{}", 3.withfgcolor(124).italic());
}
This will produce a green `1`, a bold blue `2` and a red italic `3`. The `124` in the last line corresponds to the ANSI color code for this shade of red.
You can also set the background of the output like so:
rust
use colorable::*;
fn main() {
println!("{}", 1.magenta().withbgcolor(3));
}
``
This will produce a magenta
3` on blue background. Currently setting the background
only works through explicit color codes which you can find here
std::fmt::Debug
The API for using colors and styles on objects that implement std::fmt::Debug
is exactly the same as it for std::fmt::Display
, except that every
method has a _dbg
suffix. This is done to avoid name clashing on types that implement both std::fmt::Debug
and std::fmt::Display
.
The example from above could look something like this:
```rust
use colorable::*;
fn main() { let v = vec![1, 2, 3]; println!("{:?}", v.yellowdbg()); println!("{:?}", v.cyandbg().bold_dbg()); } ```
Neither the Colored
fn main() {
println!("{:#?}", vec![1, 2, 3].darkcyandbg());
}
will simply be ignored and the output won't be pretty printed. If you want to use formatting flags, you can do something like this:
rust
use colorable::*;
fn main() { println!("{}", formatargs!("{:#?}", vec![1, 2, 3]).darkcyan()); } ```