pub trait AsRegion<T: Pixel> {
    // Required methods
    fn as_region(&self) -> PlaneRegion<'_, T>;
    fn as_region_mut(&mut self) -> PlaneRegionMut<'_, T>;
    fn region_mut(&mut self, area: Area) -> PlaneRegionMut<'_, T>;
    fn region(&self, area: Area) -> PlaneRegion<'_, T>;
}