mod color_space;
pub mod named;
mod primary;
mod spaced_color;
pub use self::color_space::{
ColorSpace, ConvertFromXyz, ConvertToXyz, EncodedColorSpace, LinearColorSpace,
};
pub use self::primary::RgbPrimary;
pub use self::spaced_color::SpacedColor;
use crate::encoding::{ColorEncoding, EncodableColor};
use num_traits;
pub trait WithColorSpace<T, C, E, S>
where
C: EncodableColor,
S: ColorSpace<T>,
E: ColorEncoding,
T: num_traits::Float,
{
fn with_color_space(self, space: S) -> SpacedColor<T, C, E, S>;
}
pub trait UnitColorSpace<T: num_traits::Float>: ColorSpace<T> {
fn build_color_space_instance() -> EncodedColorSpace<T, Self::Encoding>;
}