inku 0.4.0

An RGBA color backed by a `u32` for simple color manipulation
Documentation
type RGBA = inku::Color<inku::RGBA>;
type ZRGB = inku::Color<inku::ZRGB>;

const RED: fn(u8, u8, u8, u8) -> (u8, u8, u8, u8) = |_r, g, b, a| (255, g, b, a);

fn main() {
    let mut color = RGBA::new(0x01020304);
    eprintln!("Initial color\t{:?}", color);

    color = color.lighten(0.5);
    eprintln!("Lighten 0.5\t{:?}", color);

    color = color.map(RED);
    eprintln!("Max red channel\t{:?}", color);

    for _ in 0..3 {
        color = color.desaturate(0.3);
        eprintln!("Desaturate 0.3\t{:?}", color);
    }

    for _ in 0..3 {
        color = color.saturate(0.3);
        eprintln!("Saturate 0.3\t{:?}", color);
    }

    for _ in 0..3 {
        color = color.rotate_hue(45.0);
        eprintln!("Rotate hue 45.0\t{:?}", color);
    }

    color = color.darken(0.5);
    eprintln!("Darken 0.5\t{:?}", color);

    let mut color = ZRGB::from(<(u8, u8, u8)>::from(color));
    eprintln!("ZRGB\t\t{:?}", color);

    color = color.lighten(0.6);
    eprintln!("Lighten 0.5\t{:?}", color);

    for _ in 0..3 {
        color = color.rotate_hue(-90.0);
        eprintln!("Rotate hue 45.0\t{:?}", color);
    }
}