use crate::{containers::PixelContainer, primitives::Pixel};
pub trait CanShade {
fn shade(&mut self, pixel: Pixel) -> Pixel;
}
impl PixelContainer {
#[must_use]
pub fn shade_with(mut self, shader: &mut Box<dyn CanShade>) -> Self {
self.pixels.iter_mut().for_each(|p| *p = shader.shade(*p));
self
}
}