Colors ====== Colors is a library that helps you color and style your text. It's a port of the colors library from [NodeJS/NPM][NPM colors], mostly undertaken as a learning exercise :). Examples -------- 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()); Issues ------ - 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][format], 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. Missing from Port / Todo ------------------------ - Extra (silly) styles - Color themes - String substitution, for reasons given above [NPM colors]: https://www.npmjs.org/package/colors [format]: http://doc.rust-lang.org/std/fmt/index.html#usage [TerminfoTerminal]: http://doc.rust-lang.org/term/terminfo/struct.TerminfoTerminal.html