use crate::{cast::ComponentOrder, luma};
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct La;
impl<S, T> ComponentOrder<luma::Lumaa<S, T>, [T; 2]> for La {
#[inline]
fn pack(color: luma::Lumaa<S, T>) -> [T; 2] {
color.into()
}
#[inline]
fn unpack(packed: [T; 2]) -> luma::Lumaa<S, T> {
packed.into()
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct Al;
impl<S, T> ComponentOrder<luma::Lumaa<S, T>, [T; 2]> for Al {
#[inline]
fn pack(color: luma::Lumaa<S, T>) -> [T; 2] {
let [luma, alpha]: [T; 2] = color.into();
[alpha, luma]
}
#[inline]
fn unpack(packed: [T; 2]) -> luma::Lumaa<S, T> {
let [alpha, luma] = packed;
luma::Lumaa::new(luma, alpha)
}
}