Struct rayon::iter::find_first_last::FindConsumer
source · struct FindConsumer<'p, P> {
find_op: &'p P,
lower_bound: Cell<usize>,
upper_bound: usize,
match_position: MatchPosition,
best_found: &'p AtomicUsize,
}
Fields§
§find_op: &'p P
§lower_bound: Cell<usize>
§upper_bound: usize
§match_position: MatchPosition
§best_found: &'p AtomicUsize
Implementations§
source§impl<'p, P> FindConsumer<'p, P>
impl<'p, P> FindConsumer<'p, P>
fn new( find_op: &'p P, match_position: MatchPosition, best_found: &'p AtomicUsize, ) -> Self
fn current_index(&self) -> usize
Trait Implementations§
source§impl<'p, T, P> Consumer<T> for FindConsumer<'p, P>
impl<'p, T, P> Consumer<T> for FindConsumer<'p, P>
§type Folder = FindFolder<'p, T, P>
type Folder = FindFolder<'p, T, P>
The type of folder that this consumer can be converted into.
§type Reducer = FindReducer
type Reducer = FindReducer
The type of reducer that is produced if this consumer is split.
source§fn split_at(self, _index: usize) -> (Self, Self, Self::Reducer)
fn split_at(self, _index: usize) -> (Self, Self, Self::Reducer)
Divide the consumer into two consumers, one processing items
0..index
and one processing items from index..
. Also
produces a reducer that can be used to reduce the results at
the end.source§fn into_folder(self) -> Self::Folder
fn into_folder(self) -> Self::Folder
Convert the consumer into a folder that can consume items
sequentially, eventually producing a final result.
source§impl<'p, T, P> UnindexedConsumer<T> for FindConsumer<'p, P>
impl<'p, T, P> UnindexedConsumer<T> for FindConsumer<'p, P>
source§fn split_off_left(&self) -> Self
fn split_off_left(&self) -> Self
Splits off a “left” consumer and returns it. The
self
consumer should then be used to consume the “right” portion of
the data. (The ordering matters for methods like find_first –
values produced by the returned value are given precedence
over values produced by self
.) Once the left and right
halves have been fully consumed, you should reduce the results
with the result of to_reducer
.source§fn to_reducer(&self) -> Self::Reducer
fn to_reducer(&self) -> Self::Reducer
Creates a reducer that can be used to combine the results from
a split consumer.
Auto Trait Implementations§
impl<'p, P> !Freeze for FindConsumer<'p, P>
impl<'p, P> !RefUnwindSafe for FindConsumer<'p, P>
impl<'p, P> Send for FindConsumer<'p, P>where
P: Sync,
impl<'p, P> !Sync for FindConsumer<'p, P>
impl<'p, P> Unpin for FindConsumer<'p, P>
impl<'p, P> UnwindSafe for FindConsumer<'p, P>where
P: RefUnwindSafe,
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
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