pastel 0.12.0

A command-line tool to generate, analyze, convert and manipulate colors
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use pastel::Color;
use pastel::{Fraction, LCh, Lab, OkLCh, OkLab, HSLA, RGBA};

#[allow(clippy::type_complexity)]
pub fn get_mixing_function(
    colorspace_name: &str,
) -> Box<dyn Fn(&Color, &Color, Fraction) -> Color> {
    match colorspace_name.to_lowercase().as_ref() {
        "rgb" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<RGBA<f64>>(c2, f)),
        "hsl" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<HSLA>(c2, f)),
        "lab" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<Lab>(c2, f)),
        "lch" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<LCh>(c2, f)),
        "oklab" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<OkLab>(c2, f)),
        "oklch" => Box::new(|c1: &Color, c2: &Color, f: Fraction| c1.mix::<OkLCh>(c2, f)),
        _ => unreachable!("Unknown color space"),
    }
}