colorable 0.1.4

An easy way to get colored console output
Documentation
  • Coverage
  • 100%
    4 out of 4 items documented1 out of 1 items with examples
  • Size
  • Source code size: 20.55 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.21 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 10s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • Sp00ph

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());
}