colorable 0.1.0

An easy way to get colored console output
Documentation
# colorable

colorable is a library that makes printing colored output to the console easy.

## Get started

### Adding colorable as a dependency

```toml
[dependecies]
colorable = "0.1.0"
```
That's the only dependency you need

## Usage

colorable allows you to style console output using [ANSI escape sequences](https://en.wikipedia.org/wiki/ANSI_escape_code).
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:
```rust
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:
```rust
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](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit)
### 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:
```rust
use colorable::*;

fn main() {
    let v = vec![1, 2, 3];
    println!("{:?}", v.yellow_dbg());
    println!("{:?}", v.cyan_dbg().bold_dbg());
}
```
### **NOTE**
Neither the Colored<T> nor the ColoredDbg<T> type use any kind of formatting flags. This means that the formatting flags on something like this:
```rust
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:
```rust
use colorable::*;

fn main() {
    println!("{}", format!("{:#?}", vec![1, 2, 3]).dark_cyan());
}
```