pub struct ClassNumbers<'a, N> {
pub count: usize,
pub numbers: &'a [N],
}Expand description
Each item’s class number below count, at any integer width: classes that a fold totals, or a scan runs, each on its own (Grouping).
Fields§
§count: usizeThe number of classes.
numbers: &'a [N]Each item’s class number.
Implementations§
Trait Implementations§
Source§impl<'a, N: Clone> Clone for ClassNumbers<'a, N>
impl<'a, N: Clone> Clone for ClassNumbers<'a, N>
impl<'a, N: Copy> Copy for ClassNumbers<'a, N>
Source§impl<'a, N: Debug> Debug for ClassNumbers<'a, N>
impl<'a, N: Debug> Debug for ClassNumbers<'a, N>
Source§impl<N: Key> Grouping for ClassNumbers<'_, N>
impl<N: Key> Grouping for ClassNumbers<'_, N>
Source§fn fold<T: Copy, R: Reduction<T>>(&self, data: &[T]) -> (Vec<R::Total>, bool)
fn fold<T: Copy, R: Reduction<T>>(&self, data: &[T]) -> (Vec<R::Total>, bool)
Each class’s fold from R’s exact identity. With few classes, a class’s items lie close together, and each step of its total waits on the last through memory. So with at most R::SPLIT classes, each class folds into four totals, one for each position modulo 4, which the end merges in turn. A float sum then adds its items in another order.
Auto Trait Implementations§
impl<'a, N> Forget for ClassNumbers<'a, N>
impl<'a, N> Freeze for ClassNumbers<'a, N>
impl<'a, N> RefUnwindSafe for ClassNumbers<'a, N>where
&'a [N]: RefUnwindSafe,
impl<'a, N> Send for ClassNumbers<'a, N>
impl<'a, N> Sync for ClassNumbers<'a, N>
impl<'a, N> Unpin for ClassNumbers<'a, N>
impl<'a, N> UnsafeUnpin for ClassNumbers<'a, N>where
&'a [N]: UnsafeUnpin,
impl<'a, N> UnwindSafe for ClassNumbers<'a, N>where
&'a [N]: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more