use core::marker::PhantomData;
use crate::BackingStore;
use crate::primaries::Primaries;
use crate::transfer::TransferFunction;
use crate::{AlphaState, Straight};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Luma<P: Primaries, TF: TransferFunction>(PhantomData<(P, TF)>);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct LumaAlpha<P: Primaries, TF: TransferFunction, A: AlphaState = Straight>(
PhantomData<(P, TF, A)>,
);
impl<P: Primaries, TF: TransferFunction> BackingStore<f32> for Luma<P, TF> {}
impl<P: Primaries, TF: TransferFunction, A: AlphaState> BackingStore<[f32; 2]>
for LumaAlpha<P, TF, A>
{
}
#[cfg(feature = "glam")]
mod glam_impls {
use super::*;
impl<P: Primaries, TF: TransferFunction, A: AlphaState> BackingStore<glam::Vec2>
for LumaAlpha<P, TF, A>
{
}
}