[][src]Crate 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());
}

Structs

AnsiColor

This struct contains the colors as well as the style needed for good colored output

Colored

This struct is used for colored output of types that implement std::fmt::Display

ColoredDbg

This struct is used for colored output of types that implement std::fmt::Debug