use crate::{Alpha, OklabHue};
use super::Oklch;
pub type Oklcha<T = f32> = Alpha<Oklch<T>, T>;
impl<T, A> Alpha<Oklch<T>, A> {
pub fn new<H: Into<OklabHue<T>>>(l: T, chroma: T, hue: H, alpha: A) -> Self {
Alpha {
color: Oklch::new(l, chroma, hue),
alpha,
}
}
pub const fn new_const(l: T, chroma: T, hue: OklabHue<T>, alpha: A) -> Self {
Alpha {
color: Oklch::new_const(l, chroma, hue),
alpha,
}
}
pub fn into_components(self) -> (T, T, OklabHue<T>, A) {
(self.color.l, self.color.chroma, self.color.hue, self.alpha)
}
pub fn from_components<H: Into<OklabHue<T>>>((l, chroma, hue, alpha): (T, T, H, A)) -> Self {
Self::new(l, chroma, hue, alpha)
}
}