use core::fmt;
use crate::illuminate::D65;
mod adobe98;
mod cielab;
mod cielch;
mod cielchuv;
mod cieluv;
mod cmy;
mod cubehelix;
mod dlab;
mod dlch;
mod hsi;
mod hsl;
mod hsv;
mod hwb;
mod jab;
mod jch;
mod lab;
mod lrgb;
mod oklab;
mod oklch;
mod xyz;
mod util;
pub trait Lab {
type Lch;
type Illuminate;
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Adobe98;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Srgb;
#[derive(Clone, Copy, PartialEq, Eq, Default)]
pub struct CieLab<I>(pub I);
impl<I: fmt::Debug> fmt::Debug for CieLab<I> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "CieLab<{:?}>", self.0)
}
}
#[derive(Clone, Copy, PartialEq, Eq, Default)]
pub struct CieLch<I>(pub I);
impl<I: fmt::Debug> fmt::Debug for CieLch<I> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "CieLch<{:?}>", self.0)
}
}
impl<I> Lab for CieLab<I> {
type Lch = CieLch<I>;
type Illuminate = I;
}
#[derive(Clone, Copy, PartialEq, Eq, Default)]
pub struct CieXyz<I>(pub I);
impl<I: fmt::Debug> fmt::Debug for CieXyz<I> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "CieXyz<{:?}>", self.0)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct CieLuv;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct CieLchuv;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct CubeHelix;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct DLab;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct DLch;
impl Lab for DLab {
type Lch = DLch;
type Illuminate = D65;
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Jab;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Jch;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct OkLab;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct OkLch;
impl Lab for OkLab {
type Lch = OkLch;
type Illuminate = D65;
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Hsi;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Hsl;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Hsv;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Hwb;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Cmy;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct LinearSrgb;