Crate imgref_iter
source · [−]Expand description
A small crate for iterating over the rows or columns of imgref
buffers.
This crate exports four traits that allow creating iterators over rows or
columns of Img
s:
-
ImgIterPtr
forImg<*const [T]>
; allows creating iterators over*const
pointers -
ImgIterPtrMut
forImg<*mut [T]>
; allows creating iterators over*mut
pointers -
ImgIter
forImg<&[T]>
; allows creating iterators over shared references -
ImgIterMut
forImg<&mut [T]>
; allows creating iterators over mutable references
As well as two utility traits for converting to Img<*const [T]>
or
Img<*mut [T]>
:
-
ImgAsPtr
for conversions toImg<*const [T]>
. -
ImgAsMutPtr
for conversions toImg<*mut [T]>
.This is actually not implemented by anything other than
Img<*mut [T]>
, but it exists for the purpose of documenting why it cannot be implemented forImg<&mut [T]>
.
Additionally, when the (experimental!) simd
feature is enabled, there are
four more traits - ImgSimdIter
, ImgSimdIterMut
, ImgSimdIterPtr
,
and ImgSimdIterPtrMut
. These allow creating iterators over multiple
rows or columns of an image at once. They don’t actually depend on SIMD or a
nightly compiler - they just return multiple items at once.
Methods on ImgIterPtr
and ImgIterPtrMut
are unsafe
because they
offset on the provided pointers. ImgIter
and ImgIterMut
cannot
include safe versions because the pointer iterators may outlive the
references.