colors

Crates.iocolors
lib.rscolors
version0.0.1
sourcesrc
created_at2014-11-24 01:04:13.488611
updated_at2015-12-11 23:58:10.571132
descriptionA library that helps you color and style your text
homepage
repositoryhttps://github.com/jtuchsen/colors.git
max_upload_size
id381
size775,846
(jtuchsen)

documentation

README

Colors

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 :).

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, 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
Commit count: 18

cargo fmt