use crate::{
draw_target::DrawTarget,
geometry::{OriginDimensions, Point},
pixelcolor::PixelColor,
primitives::Rectangle,
};
pub trait ImageDrawable: OriginDimensions {
type Color: PixelColor;
fn draw<D>(&self, target: &mut D) -> Result<(), D::Error>
where
D: DrawTarget<Color = Self::Color>;
fn draw_sub_image<D>(&self, target: &mut D, area: &Rectangle) -> Result<(), D::Error>
where
D: DrawTarget<Color = Self::Color>;
}
pub trait GetPixel {
type Color: PixelColor;
fn pixel(&self, p: Point) -> Option<Self::Color>;
}