use crate::alpha::Alpha;
use crate::oklab::Oklab;
pub type Oklaba<T = f32> = Alpha<Oklab<T>, T>;
impl<T, A> Alpha<Oklab<T>, A> {
pub const fn new(l: T, a: T, b: T, alpha: A) -> Self {
Alpha {
color: Oklab::new(l, a, b),
alpha,
}
}
pub fn into_components(self) -> (T, T, T, A) {
(self.color.l, self.color.a, self.color.b, self.alpha)
}
pub fn from_components((l, a, b, alpha): (T, T, T, A)) -> Self {
Self::new(l, a, b, alpha)
}
}