pub trait PackedIterator: Sized + ExactSizeIterator {
type Scalar: Packable;
type Vector: Packed<Self::Scalar>;
fn width(&self) -> usize;
fn scalar_len(&self) -> usize;
fn scalar_position(&self) -> usize;
fn next_vector(&mut self) -> Option<Self::Vector>;
}
impl<'a, T> PackedIterator for PackedIter<'a, T> where
T: Packable, type Vector = <T as Packable>::Vector; type Scalar = T;
impl<'a, T> PackedIterator for UnevenPackedIter<'a, T> where
T: Packable, type Vector = <T as Packable>::Vector; type Scalar = T;
impl<'a, A, B, I, F, G> PackedIterator for UnevenMap<I, F, G> where
I: UnevenPackedIterator,
F: Fn(I::Vector) -> A,
G: Fn(I::Scalar) -> B,
A: Packed<B>,
B: Packable, type Vector = A; type Scalar = B;