fast image operations
Diffstat (limited to 'src/affine.rs')
-rw-r--r--src/affine.rs23
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,