pub trait Pixel: Copy + Into<f64> { fn from_f64(f: f64) -> Self; fn cast<P: Pixel>(self) -> P { ... } }