pub struct Par<I, R = RunnerWithPool<SequentialPool>>where
    R: ParallelRunner,
    I: ConcurrentIter,{ /* private fields */ }Expand description
A parallel iterator.
Implementationsยง
Sourceยงimpl<I, R> Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
 
impl<I, R> Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
Sourcepub fn chain<C>(
    self,
    other: C,
) -> Par<ChainKnownLenI<I, <C as IntoConcurrentIter>::IntoIter>, R>
 
pub fn chain<C>( self, other: C, ) -> Par<ChainKnownLenI<I, <C as IntoConcurrentIter>::IntoIter>, R>
Creates a chain of this and other parallel iterators.
The first iterator is required to have a known length for chaining.
ยงExamples
use orx_parallel::*;
let a = vec!['a', 'b', 'c']; // with exact len
let b = vec!['d', 'e', 'f'].into_iter().filter(|x| *x != 'x');
let chain = a.into_par().chain(b.iter_into_par());
assert_eq!(
    chain.collect::<Vec<_>>(),
    vec!['a', 'b', 'c', 'd', 'e', 'f'],
);Trait Implementationsยง
Sourceยงimpl<I> IntoConcurrentIter for Par<I>where
    I: ConcurrentIter,
 
impl<I> IntoConcurrentIter for Par<I>where
    I: ConcurrentIter,
Sourceยงtype Item = <I as ConcurrentIter>::Item
 
type Item = <I as ConcurrentIter>::Item
Type of the element that the concurrent iterator yields.
Sourceยงfn into_con_iter(self) -> <Par<I> as IntoConcurrentIter>::IntoIter
 
fn into_con_iter(self) -> <Par<I> as IntoConcurrentIter>::IntoIter
Trait to convert a source (collection or generator) into a concurrent iterator; i.e., 
ConcurrentIter,
using its into_con_iter method. Read moreSourceยงimpl<I, R> ParIter<R> for Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
 
impl<I, R> ParIter<R> for Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
Sourceยงtype Item = <I as ConcurrentIter>::Item
 
type Item = <I as ConcurrentIter>::Item
Element type of the parallel iterator.
Sourceยงfn con_iter(&self) -> &impl ConcurrentIter
 
fn con_iter(&self) -> &impl ConcurrentIter
Returns a reference to the input concurrent iterator.
Sourceยงfn num_threads(self, num_threads: impl Into<NumThreads>) -> Par<I, R>
 
fn num_threads(self, num_threads: impl Into<NumThreads>) -> Par<I, R>
Sets the number of threads to be used in the parallel execution.
Integers can be used as the argument with the following mapping: Read more
Sourceยงfn chunk_size(self, chunk_size: impl Into<ChunkSize>) -> Par<I, R>
 
fn chunk_size(self, chunk_size: impl Into<ChunkSize>) -> Par<I, R>
Sets the number of elements to be pulled from the concurrent iterator during the
parallel execution. When integers are used as argument, the following mapping applies: Read more
Sourceยงfn iteration_order(self, collect: IterationOrder) -> Par<I, R>
 
fn iteration_order(self, collect: IterationOrder) -> Par<I, R>
Sets the iteration order of the parallel computation. Read more
Sourceยงfn with_runner<Q>(
    self,
    orchestrator: Q,
) -> impl ParIter<Q, Item = <Par<I, R> as ParIter<R>>::Item>where
    Q: ParallelRunner,
 
fn with_runner<Q>(
    self,
    orchestrator: Q,
) -> impl ParIter<Q, Item = <Par<I, R> as ParIter<R>>::Item>where
    Q: ParallelRunner,
Rather than the 
DefaultRunner, uses the parallel runner Q which implements ParallelRunner. Read moreSourceยงfn using<U, F>(
    self,
    using: F,
) -> impl ParIterUsing<UsingFun<F, U>, R, Item = <Par<I, R> as ParIter<R>>::Item>
 
fn using<U, F>( self, using: F, ) -> impl ParIterUsing<UsingFun<F, U>, R, Item = <Par<I, R> as ParIter<R>>::Item>
Converts the 
ParIter into ParIterUsing which will have access to a mutable reference of the
used variable throughout the computation. Read moreSourceยงfn using_clone<U>(
    self,
    value: U,
) -> impl ParIterUsing<UsingClone<U>, R, Item = <Par<I, R> as ParIter<R>>::Item>where
    U: Clone + 'static,
 
fn using_clone<U>(
    self,
    value: U,
) -> impl ParIterUsing<UsingClone<U>, R, Item = <Par<I, R> as ParIter<R>>::Item>where
    U: Clone + 'static,
Converts the 
ParIter into ParIterUsing which will have access to a mutable reference of the
used variable throughout the computation. Read moreSourceยงfn map<Out, Map>(self, map: Map) -> impl ParIter<R, Item = Out>
 
fn map<Out, Map>(self, map: Map) -> impl ParIter<R, Item = Out>
Takes a closure 
map and creates a parallel iterator which calls that closure on each element. Read moreSourceยงfn filter<Filter>(
    self,
    filter: Filter,
) -> impl ParIter<R, Item = <Par<I, R> as ParIter<R>>::Item>
 
fn filter<Filter>( self, filter: Filter, ) -> impl ParIter<R, Item = <Par<I, R> as ParIter<R>>::Item>
Creates an iterator which uses a closure 
filter to determine if an element should be yielded. Read moreSourceยงfn flat_map<IOut, FlatMap>(
    self,
    flat_map: FlatMap,
) -> impl ParIter<R, Item = <IOut as IntoIterator>::Item>
 
fn flat_map<IOut, FlatMap>( self, flat_map: FlatMap, ) -> impl ParIter<R, Item = <IOut as IntoIterator>::Item>
Creates an iterator that works like map, but flattens nested structure. Read more
Sourceยงfn filter_map<Out, FilterMap>(
    self,
    filter_map: FilterMap,
) -> impl ParIter<R, Item = Out>
 
fn filter_map<Out, FilterMap>( self, filter_map: FilterMap, ) -> impl ParIter<R, Item = Out>
Creates an iterator that both filters and maps. Read more
Sourceยงfn take_while<While>(
    self,
    take_while: While,
) -> impl ParIter<R, Item = <Par<I, R> as ParIter<R>>::Item>
 
fn take_while<While>( self, take_while: While, ) -> impl ParIter<R, Item = <Par<I, R> as ParIter<R>>::Item>
Creates an iterator that yields elements based on the predicate 
take_while. Read moreSourceยงfn into_fallible_result<Out, Err>(
    self,
) -> impl ParIterResult<R, Item = Out, Err = Err>
 
fn into_fallible_result<Out, Err>( self, ) -> impl ParIterResult<R, Item = Out, Err = Err>
Transforms a parallel iterator where elements are of the result type; i.e., 
ParIter<R, Item = Result<T, E>>,
into fallible parallel iterator with item type T and error type E; i.e., into ParIterResult<R, Item = T, Err = E>. Read moreSourceยงfn collect_into<C>(self, output: C) -> C
 
fn collect_into<C>(self, output: C) -> C
Collects all the items from an iterator into a collection. Read more
Sourceยงfn reduce<Reduce>(
    self,
    reduce: Reduce,
) -> Option<<Par<I, R> as ParIter<R>>::Item>
 
fn reduce<Reduce>( self, reduce: Reduce, ) -> Option<<Par<I, R> as ParIter<R>>::Item>
Reduces the elements to a single one, by repeatedly applying a reducing operation. Read more
Sourceยงfn first(self) -> Option<<Par<I, R> as ParIter<R>>::Item>
 
fn first(self) -> Option<<Par<I, R> as ParIter<R>>::Item>
Returns the first (or any) element of the iterator; returns None if it is empty. Read more
Sourceยงfn with_pool<P>(
    self,
    pool: P,
) -> impl ParIter<RunnerWithPool<P, <R as ParallelRunner>::Executor>, Item = Self::Item>where
    P: ParThreadPool,
 
fn with_pool<P>(
    self,
    pool: P,
) -> impl ParIter<RunnerWithPool<P, <R as ParallelRunner>::Executor>, Item = Self::Item>where
    P: ParThreadPool,
Rather than 
DefaultPool, uses the parallel runner with the given pool implementing
ParThreadPool. Read moreSourceยงfn into_fallible_option<T>(self) -> impl ParIterOption<R, Item = T>where
    Self::Item: IntoOption<T>,
 
fn into_fallible_option<T>(self) -> impl ParIterOption<R, Item = T>where
    Self::Item: IntoOption<T>,
Transforms a parallel iterator where elements are of the option type; i.e., 
ParIter<R, Item = Option<T>>,
into fallible parallel iterator with item type T; i.e., into ParIterOption<R, Item = T>. Read moreSourceยงfn inspect<Operation>(
    self,
    operation: Operation,
) -> impl ParIter<R, Item = Self::Item>
 
fn inspect<Operation>( self, operation: Operation, ) -> impl ParIter<R, Item = Self::Item>
Does something with each element of an iterator, passing the value on. Read more
Sourceยงfn map_while<Out, MapWhile>(
    self,
    map_while: MapWhile,
) -> impl ParIter<R, Item = Out>
 
fn map_while<Out, MapWhile>( self, map_while: MapWhile, ) -> impl ParIter<R, Item = Out>
Creates an iterator that both yields elements based on the predicate 
map_while and maps. Read moreSourceยงfn copied<'a, T>(self) -> impl ParIter<R, Item = T>
 
fn copied<'a, T>(self) -> impl ParIter<R, Item = T>
Creates an iterator which copies all of its elements. Read more
Sourceยงfn cloned<'a, T>(self) -> impl ParIter<R, Item = T>
 
fn cloned<'a, T>(self) -> impl ParIter<R, Item = T>
Creates an iterator which clones all of its elements. Read more
Sourceยงfn flatten(self) -> impl ParIter<R, Item = <Self::Item as IntoIterator>::Item>where
    Self::Item: IntoIterator,
 
fn flatten(self) -> impl ParIter<R, Item = <Self::Item as IntoIterator>::Item>where
    Self::Item: IntoIterator,
Creates an iterator that flattens nested structure. Read more
Sourceยงfn collect<C>(self) -> Cwhere
    C: ParCollectInto<Self::Item>,
 
fn collect<C>(self) -> Cwhere
    C: ParCollectInto<Self::Item>,
Transforms an iterator into a collection. Read more
Sourceยงfn all<Predicate>(self, predicate: Predicate) -> bool
 
fn all<Predicate>(self, predicate: Predicate) -> bool
Tests if every element of the iterator matches a predicate. Read more
Sourceยงfn any<Predicate>(self, predicate: Predicate) -> bool
 
fn any<Predicate>(self, predicate: Predicate) -> bool
Tests if any element of the iterator matches a predicate. Read more
Sourceยงfn count(self) -> usize
 
fn count(self) -> usize
Consumes the iterator, counting the number of iterations and returning it. Read more
Sourceยงfn for_each<Operation>(self, operation: Operation)
 
fn for_each<Operation>(self, operation: Operation)
Calls a closure on each element of an iterator. Read more
Sourceยงfn max_by<Compare>(self, compare: Compare) -> Option<Self::Item>
 
fn max_by<Compare>(self, compare: Compare) -> Option<Self::Item>
Returns the element that gives the maximum value with respect to the specified 
compare function. Read moreSourceยงfn max_by_key<Key, GetKey>(self, key: GetKey) -> Option<Self::Item>
 
fn max_by_key<Key, GetKey>(self, key: GetKey) -> Option<Self::Item>
Returns the element that gives the maximum value from the specified function. Read more
Sourceยงfn min_by<Compare>(self, compare: Compare) -> Option<Self::Item>
 
fn min_by<Compare>(self, compare: Compare) -> Option<Self::Item>
Returns the element that gives the minimum value with respect to the specified 
compare function. Read moreSourceยงfn min_by_key<Key, GetKey>(self, get_key: GetKey) -> Option<Self::Item>
 
fn min_by_key<Key, GetKey>(self, get_key: GetKey) -> Option<Self::Item>
Returns the element that gives the minimum value from the specified function. Read more
impl<I, R> Send for Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
impl<I, R> Sync for Par<I, R>where
    R: ParallelRunner,
    I: ConcurrentIter,
Auto Trait Implementationsยง
impl<I, R> Freeze for Par<I, R>
impl<I, R> RefUnwindSafe for Par<I, R>where
    R: RefUnwindSafe,
    I: RefUnwindSafe,
impl<I, R> Unpin for Par<I, R>
impl<I, R> UnwindSafe for Par<I, R>where
    R: UnwindSafe,
    I: 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