fast image operations
Diffstat (limited to 'src/span.rs')
| -rw-r--r-- | src/span.rs | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/src/span.rs b/src/span.rs deleted file mode 100644 index 69a01ad..0000000 --- a/src/span.rs +++ /dev/null @@ -1,42 +0,0 @@ -use crate::At; -use std::ops::Range; - -mod sealer { - #[doc(hidden)] - pub trait Sealed {} -} -use sealer::Sealed; - -/// Trait for that which can be used to index a image. -pub trait Span: Sealed { - #[doc(hidden)] - fn range<const C: usize>(self, i: (u32, u32)) -> Range<usize>; -} - -impl Sealed for Range<usize> {} -impl Span for Range<usize> { - #[inline(always)] - fn range<const C: usize>(self, _: (u32, u32)) -> Range<usize> { - self - } -} - -impl Sealed for Range<(u32, u32)> {} -impl Span for Range<(u32, u32)> { - #[inline(always)] - fn range<const C: usize>(self, i: (u32, u32)) -> Range<usize> { - let Self { - start: (sx, sy), - end: (ex, ey), - } = self; - i.at::<C>(sx, sy)..i.at::<C>(ex, ey) - } -} - -impl Sealed for (u32, u32) {} -impl Span for (u32, u32) { - #[inline(always)] - fn range<const C: usize>(self, i: (u32, u32)) -> Range<usize> { - i.at::<C>(self.0, self.1)..i.at::<C>(self.0, self.1) + C - } -} |