#![no_std]
#![warn(missing_docs)]
#[cfg(feature = "std")]
extern crate std;
pub mod chromatic_adaptation;
pub mod decode;
pub mod device;
pub mod encode;
pub mod illuminant;
pub mod layout;
pub mod math;
pub mod model;
pub mod observer;
pub mod primaries;
pub mod tonemap;
pub mod transfer;
pub use model::{LCh, Lab, Oklab, Oklch, Xyz};
pub type Srgb<L = layout::Rgba> = model::Rgb<primaries::Srgb, transfer::Srgb, L>;
pub type LinearSrgb<L = layout::Rgba> = model::Rgb<primaries::Srgb, transfer::Linear, L>;
pub type Rec709<L = layout::Rgba> = model::Rgb<primaries::Srgb, transfer::Rec709, L>;
pub type DisplayP3<L = layout::Rgba> = model::Rgb<primaries::P3, transfer::Srgb, L>;
pub type LinearP3<L = layout::Rgba> = model::Rgb<primaries::P3, transfer::Linear, L>;
pub type Hdr10<L = layout::Rgba> = model::Rgb<primaries::Rec2020, transfer::Pq, L>;
pub type Hlg<L = layout::Rgba> = model::Rgb<primaries::Rec2020, transfer::Hlg, L>;
pub type LinearRec2020<L = layout::Rgba> = model::Rgb<primaries::Rec2020, transfer::Linear, L>;
pub type AcesCg<L = layout::Rgba> = model::Rgb<primaries::AcesAp1, transfer::Linear, L>;
pub type Aces2065<L = layout::Rgba> = model::Rgb<primaries::AcesAp0, transfer::Linear, L>;
pub type AcesCc<L = layout::Rgba> = model::Rgb<primaries::AcesAp1, transfer::AcesCc, L>;
pub type AcesCct<L = layout::Rgba> = model::Rgb<primaries::AcesAp1, transfer::AcesCct, L>;
pub type ProPhoto<L = layout::Rgba> = model::Rgb<primaries::ProPhoto, transfer::ProPhoto, L>;
pub type LinearProPhoto<L = layout::Rgba> = model::Rgb<primaries::ProPhoto, transfer::Linear, L>;
pub type DciP3<L = layout::Rgba> = model::Rgb<primaries::DciP3, transfer::DciP3, L>;
pub trait BackingStore<S> {}
pub trait AlphaState: 'static {}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Straight;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Premultiplied;
impl AlphaState for Straight {}
impl AlphaState for Premultiplied {}
pub trait ChannelMap<const N: usize>: 'static {
const INDICES: [usize; N];
}