Crates.io | colors |
lib.rs | colors |
version | 0.0.1 |
source | src |
created_at | 2014-11-24 01:04:13.488611 |
updated_at | 2015-12-11 23:58:10.571132 |
description | A library that helps you color and style your text |
homepage | |
repository | https://github.com/jtuchsen/colors.git |
max_upload_size | |
id | 381 |
size | 775,846 |
Colors is a library that helps you color and style your text. It's a port of the colors library from NodeJS/NPM, mostly undertaken as a learning exercise :).
use colors::Style; // Import this to add colors to your string types
println!("{}", "I'm now magically printed in green!".green());
If you prefer to not have the traits added to your &str and strings then just call style directly, like so:
use colors::{Styles,style};
println!("{}", style(Styles::Blue, "I'm now blue!"))
Although with the former style you get a nifty chaining syntax:
use colors::Style;
println!("{}", "Bolded, underlined, and red!".bold().underline().red());
You may have noticed a problem in the examples, we lose the native string substitution that Rusts "println!" macro comes with. This is pretty unfortunate and it looks like it's unavoidable. According to the documentation, the compiler requires that the passed value be a string literal in order to enforce validity checking. If you know of a work around please submit a pull request.
This whole technique is also pretty un-rusty. Dynamically allocating a bunch Strings in order to wrap them in fancy Unicode characters isn't going to be very efficient. As an alternative you can use the nifty TerminfoTerminal from Rusts standard library.