ph_color/encoding.rs
1//! Sealed encoding: linear versus transfer-encoded.
2
3mod sealed {
4 pub trait Sealed {}
5}
6
7/// Channel encoding. Sealed: only [`Linear`] and [`Encoded`].
8pub trait Encoding: sealed::Sealed {}
9
10/// Linear light. Legal for matrix, gain, and non-perceptual lerp.
11#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
12pub struct Linear;
13
14/// Transfer-encoded. Same-space transfer only; not a matrix/gain input.
15#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
16pub struct Encoded;
17
18impl sealed::Sealed for Linear {}
19impl sealed::Sealed for Encoded {}
20impl Encoding for Linear {}
21impl Encoding for Encoded {}