fast image operations
Diffstat (limited to 'src/affine.rs')
| -rw-r--r-- | src/affine.rs | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/src/affine.rs b/src/affine.rs index 15e25f6..f7bfadd 100644 --- a/src/affine.rs +++ b/src/affine.rs @@ -1,5 +1,5 @@ //! Manages the affine image transformations. -use std::ops::{Deref, DerefMut}; +use std::ops::DerefMut; use crate::{cloner::ImageCloner, Image}; @@ -45,7 +45,7 @@ impl<const CHANNELS: usize> ImageCloner<'_, CHANNELS> { } } -impl<const CHANNELS: usize, T: Deref<Target = [u8]> + DerefMut<Target = [u8]>> Image<T, CHANNELS> { +impl<const CHANNELS: usize, T: DerefMut<Target = [u8]>> Image<T, CHANNELS> { /// Flip an image vertically. pub fn flip_v(&mut self) { for y in 0..self.height() / 2 { @@ -131,7 +131,7 @@ impl<const CHANNELS: usize> ImageCloner<'_, CHANNELS> { } } -impl<const CHANNELS: usize, T: Deref<Target = [u8]> + DerefMut<Target = [u8]>> Image<T, CHANNELS> { +impl<const CHANNELS: usize, T: DerefMut<Target = [u8]>> Image<T, CHANNELS> { /// Rotate an image 180 degrees clockwise. pub fn rot_180(&mut self) { self.flatten_mut().reverse(); @@ -166,7 +166,7 @@ impl<const CHANNELS: usize, T: Deref<Target = [u8]> + DerefMut<Target = [u8]>> I /// # Safety /// /// UB if supplied image rectangular -unsafe fn transpose<const CHANNELS: usize, T: Deref<Target = [u8]> + DerefMut<Target = [u8]>>( +unsafe fn transpose<const CHANNELS: usize, T: DerefMut<Target = [u8]>>( img: &mut Image<T, CHANNELS>, ) { debug_assert_eq!(img.width(), img.height()); @@ -184,10 +184,7 @@ unsafe fn transpose<const CHANNELS: usize, T: Deref<Target = [u8]> + DerefMut<Ta /// # Safety /// /// UB if image not square -unsafe fn transpose_non_power_of_two< - const CHANNELS: usize, - T: Deref<Target = [u8]> + DerefMut<Target = [u8]>, ->( +unsafe fn transpose_non_power_of_two<const CHANNELS: usize, T: DerefMut<Target = [u8]>>( img: &mut Image<T, CHANNELS>, ) { debug_assert_eq!(img.width(), img.height()); @@ -208,10 +205,7 @@ const TILE: usize = 4; /// # Safety /// /// be careful -unsafe fn transpose_tile< - const CHANNELS: usize, - T: Deref<Target = [u8]> + DerefMut<Target = [u8]>, ->( +unsafe fn transpose_tile<const CHANNELS: usize, T: DerefMut<Target = [u8]>>( img: &mut Image<T, CHANNELS>, row: usize, col: usize, @@ -247,10 +241,7 @@ unsafe fn transpose_tile< /// # Safety /// /// be careful -unsafe fn transpose_diag< - const CHANNELS: usize, - T: Deref<Target = [u8]> + DerefMut<Target = [u8]>, ->( +unsafe fn transpose_diag<const CHANNELS: usize, T: DerefMut<Target = [u8]>>( img: &mut Image<T, CHANNELS>, pos: usize, size: usize, |