use colr::chromatic_adaptation::Bradford;
use colr::illuminant::{AcesWhitePoint, D65};
use colr::{AcesCg, Color, LinearSrgb, Srgb, Xyz};
fn main() {
let a: Color<[f32; 4], Srgb> = Color::new([0.9, 0.2, 0.1, 1.0]);
let b: Color<[f32; 4], Srgb> = Color::new([0.1, 0.4, 0.9, 1.0]);
let blended: Color<[f32; 4], LinearSrgb> = a.decode().lerp(b.decode(), 0.5);
let composite: Color<[f32; 4], Srgb> = blended.encode();
println!("composite: {:?}", composite.inner());
let acescg: Color<[f32; 4], AcesCg> = Color::new([1.4, 0.9, 0.3, 1.0]);
let xyz_d65: Color<[f32; 4], Xyz<D65>> =
Color::<_, Xyz<AcesWhitePoint>>::from(acescg).adapt::<D65, Bradford>();
let linear: Color<[f32; 4], LinearSrgb> = xyz_d65.into();
let display: Color<[f32; 4], Srgb> = linear.clamp(0.0, 1.0).encode();
println!("display: {:?}", display.inner());
}