5 releases
0.1.4 | Oct 16, 2020 |
---|---|
0.1.3 | Oct 8, 2020 |
0.1.2 | Oct 8, 2020 |
0.1.1 | Oct 8, 2020 |
0.1.0 | Sep 1, 2020 |
#13 in #colored
85 downloads per month
Used in 4 crates
(2 directly)
20KB
563 lines
colorable
colorable is a library that makes printing colored output to the console easy.
Get started
Adding colorable as a dependency
[dependecies]
colorable = "0.1"
That's the only dependency you need
Usage
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
.
How to use on types that implement std::fmt::Display
Basic example:
use colorable::*;
fn main() {
println!("{}", 1.green());
println!("{}", 2.blue().bold());
println!("{}", 3.with_fg_color(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:
use colorable::*;
fn main() {
println!("{}", 1.magenta().with_bg_color(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
How to use on types that implement 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:
use colorable::*;
fn main() {
let v = vec![1, 2, 3];
println!("{:?}", v.yellow_dbg());
println!("{:?}", v.cyan_dbg().bold_dbg());
}
NOTE
Neither the Colored nor the ColoredDbg type use any kind of formatting flags. This means that the formatting flags on something like this:
use colorable::*;
fn main() {
println!("{:#?}", vec![1, 2, 3].dark_cyan_dbg());
}
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:
use colorable::*;
fn main() {
println!("{}", format_args!("{:#?}", vec![1, 2, 3]).dark_cyan());
}