pub trait ParallelizableCollection: ConcurrentCollection {
    // Provided method
    fn par(&self) -> Par<<Self::Iterable<'_> as ConcurrentIterable>::Iter> { ... }
}Expand description
A type implementing ParallelizableCollection is a collection owning the elements such that
- if the elements are of type T,
- non-consuming parmethod can be called multiple times to create parallel iterators; i.e.,ParIter, yielding references to the elements&T; and
- consuming into_parmethod can be called once to create a parallel iterator yielding owned elementsT.
This trait can be considered as the concurrent counterpart of the Collection trait.
Note that every ConcurrentCollection type automatically implements ParallelizableCollection.
§Examples
use orx_parallel::*;
// Vec<T>: ParallelizableCollection<Item = T>
let vec = vec![1, 2, 3, 4];
// non-consuming iteration over references
assert_eq!(vec.par().sum(), 10);
assert_eq!(vec.par().min(), Some(&1));
assert_eq!(vec.par().max(), Some(&4));
// consuming iteration over owned values
assert_eq!(vec.into_par().max(), Some(4));Provided Methods§
Sourcefn par(&self) -> Par<<Self::Iterable<'_> as ConcurrentIterable>::Iter>
 
fn par(&self) -> Par<<Self::Iterable<'_> as ConcurrentIterable>::Iter>
A type implementing ParallelizableCollection is a collection owning the elements such that
- if the elements are of type T,
- non-consuming parmethod can be called multiple times to create parallel iterators; i.e.,ParIter, yielding references to the elements&T; and
- consuming into_parmethod can be called once to create a parallel iterator yielding owned elementsT.
This trait can be considered as the concurrent counterpart of the Collection trait.
Note that every ConcurrentCollection type automatically implements ParallelizableCollection.
§Examples
use orx_parallel::*;
// Vec<T>: ParallelizableCollection<Item = T>
let vec = vec![1, 2, 3, 4];
// non-consuming iteration over references
assert_eq!(vec.par().sum(), 10);
assert_eq!(vec.par().min(), Some(&1));
assert_eq!(vec.par().max(), Some(&4));
// consuming iteration over owned values
assert_eq!(vec.into_par().max(), Some(4));Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.