[][src]Trait amadeus_core::par_stream::ParallelStream

#[must_use]pub trait ParallelStream {
    type Item;
    type Task: StreamTask<Item = Self::Item> + Send;
    fn next_task(
        self: Pin<&mut Self>,
        cx: &mut Context
    ) -> Poll<Option<Self::Task>>;
fn size_hint(&self) -> (usize, Option<usize>); #[must_use] fn reduce<'life0, 'async_trait, P, B, R1, R3>(
        self,
        pool: &'life0 P,
        reduce_a: R1,
        reduce_c: R3
    ) -> Pin<Box<dyn Future<Output = B> + 'async_trait>>
    where
        P: ThreadPool,
        R1: ReducerSend<Self::Item> + Clone + Send + 'static,
        R3: Reducer<<R1 as ReducerSend<Self::Item>>::Done, Done = B>,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        B: 'async_trait,
        R1: 'async_trait,
        R3: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn pipe<'life0, 'async_trait, P, ParSink, A>(
        self,
        pool: &'life0 P,
        sink: ParSink
    ) -> Pin<Box<dyn Future<Output = A> + 'async_trait>>
    where
        P: ThreadPool,
        ParSink: ParallelSink<Self::Item, Done = A>,
        <ParSink::Pipe as ParallelPipe<Self::Item>>::Task: 'static,
        ParSink::ReduceA: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        ParSink: 'async_trait,
        A: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn fork<'life0, 'async_trait, P, ParSinkA, ParSinkB, A, B>(
        self,
        pool: &'life0 P,
        sink_a: ParSinkA,
        sink_b: ParSinkB
    ) -> Pin<Box<dyn Future<Output = (A, B)> + 'async_trait>>
    where
        P: ThreadPool,
        ParSinkA: ParallelSink<Self::Item, Done = A>,
        ParSinkB: for<'a> ParallelSink<&'a Self::Item, Done = B> + 'static,
        <ParSinkA::Pipe as ParallelPipe<Self::Item>>::Task: 'static,
        ParSinkA::ReduceA: 'static,
        <ParSinkB as ParallelSink<&'static Self::Item>>::ReduceA: 'static,
        <<ParSinkB as ParallelSink<&'static Self::Item>>::Pipe as ParallelPipe<&'static Self::Item>>::Task: 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        ParSinkA: 'async_trait,
        ParSinkB: 'async_trait,
        A: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn group_by<'life0, 'async_trait, P, S, A, B>(
        self,
        pool: &'life0 P,
        sink: S
    ) -> Pin<Box<dyn Future<Output = IndexMap<A, S::Done>> + 'async_trait>>
    where
        P: ThreadPool,
        A: Eq + Hash + Send + 'static,
        B: 'static,
        S: ParallelSink<B>,
        <S::Pipe as ParallelPipe<B>>::Task: Clone + Send + 'static,
        S::ReduceA: 'static,
        S::ReduceC: Clone,
        S::Done: Send + 'static,
        Self::Task: 'static,
        Self: ParallelStream<Item = (A, B)> + Sized,
        P: 'async_trait,
        S: 'async_trait,
        A: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn collect<'life0, 'async_trait, P, B>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = B> + 'async_trait>>
    where
        P: ThreadPool,
        B: FromParallelStream<Self::Item>,
        B::ReduceA: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where
        F: FnMut(&Self::Item) + Clone + Send + 'static,
        Self: Sized
, { ... }
fn update<F>(self, f: F) -> Update<Self, F>
    where
        F: FnMut(&mut Self::Item) + Clone + Send + 'static,
        Self: Sized
, { ... }
fn map<B, F>(self, f: F) -> Map<Self, F>
    where
        F: FnMut(Self::Item) -> B + Clone + Send + 'static,
        Self: Sized
, { ... }
fn flat_map<B, F>(self, f: F) -> FlatMap<Self, F>
    where
        F: FnMut(Self::Item) -> B + Clone + Send + 'static,
        B: Stream,
        Self: Sized
, { ... }
fn filter<F>(self, f: F) -> Filter<Self, F>
    where
        F: FnMut(&Self::Item) -> bool + Clone + Send + 'static,
        Self: Sized
, { ... }
fn chain<C>(self, chain: C) -> Chain<Self, C::ParStream>
    where
        C: IntoParallelStream<Item = Self::Item>,
        Self: Sized
, { ... }
#[must_use] fn for_each<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(Self::Item) + Clone + Send + 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn fold<'life0, 'async_trait, P, ID, F, B>(
        self,
        pool: &'life0 P,
        identity: ID,
        op: F
    ) -> Pin<Box<dyn Future<Output = B> + 'async_trait>>
    where
        P: ThreadPool,
        ID: FnMut() -> B + Clone + Send + 'static,
        F: FnMut(B, Either<Self::Item, B>) -> B + Clone + Send + 'static,
        B: Send + 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        ID: 'async_trait,
        F: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn histogram<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = Vec<(Self::Item, usize)>> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: Hash + Ord + Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn count<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = usize> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn sum<'life0, 'async_trait, P, S>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = S> + 'async_trait>>
    where
        P: ThreadPool,
        S: Sum<Self::Item> + Sum<S> + Send + 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        S: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn combine<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(Self::Item, Self::Item) -> Self::Item + Clone + Send + 'static,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn max<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: Ord + Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn max_by<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(&Self::Item, &Self::Item) -> Ordering + Clone + Send + 'static,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn max_by_key<'life0, 'async_trait, P, F, B>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(&Self::Item) -> B + Clone + Send + 'static,
        B: Ord + 'static,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn min<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: Ord + Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn min_by<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(&Self::Item, &Self::Item) -> Ordering + Clone + Send + 'static,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn min_by_key<'life0, 'async_trait, P, F, B>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(&Self::Item) -> B + Clone + Send + 'static,
        B: Ord + 'static,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn most_frequent<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P,
        n: usize,
        probability: f64,
        tolerance: f64
    ) -> Pin<Box<dyn Future<Output = Top<Self::Item, usize>> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: Hash + Eq + Clone + Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn most_distinct<'life0, 'async_trait, P, A, B>(
        self,
        pool: &'life0 P,
        n: usize,
        probability: f64,
        tolerance: f64,
        error_rate: f64
    ) -> Pin<Box<dyn Future<Output = Top<A, HyperLogLogMagnitude<B>>> + 'async_trait>>
    where
        P: ThreadPool,
        Self: ParallelStream<Item = (A, B)> + Sized,
        A: Hash + Eq + Clone + Send + 'static,
        B: Hash + 'static,
        Self::Task: 'static,
        P: 'async_trait,
        A: 'async_trait,
        B: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn sample_unstable<'life0, 'async_trait, P>(
        self,
        pool: &'life0 P,
        samples: usize
    ) -> Pin<Box<dyn Future<Output = SampleUnstable<Self::Item>> + 'async_trait>>
    where
        P: ThreadPool,
        Self::Item: Send + 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn all<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = bool> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(Self::Item) -> bool + Clone + Send + 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... }
#[must_use] fn any<'life0, 'async_trait, P, F>(
        self,
        pool: &'life0 P,
        f: F
    ) -> Pin<Box<dyn Future<Output = bool> + 'async_trait>>
    where
        P: ThreadPool,
        F: FnMut(Self::Item) -> bool + Clone + Send + 'static,
        Self::Item: 'static,
        Self::Task: 'static,
        Self: Sized,
        P: 'async_trait,
        F: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
, { ... } }

Associated Types

type Item

type Task: StreamTask<Item = Self::Item> + Send

Loading content...

Required methods

fn next_task(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Option<Self::Task>>

fn size_hint(&self) -> (usize, Option<usize>)

Loading content...

Provided methods

#[must_use]fn reduce<'life0, 'async_trait, P, B, R1, R3>(
    self,
    pool: &'life0 P,
    reduce_a: R1,
    reduce_c: R3
) -> Pin<Box<dyn Future<Output = B> + 'async_trait>> where
    P: ThreadPool,
    R1: ReducerSend<Self::Item> + Clone + Send + 'static,
    R3: Reducer<<R1 as ReducerSend<Self::Item>>::Done, Done = B>,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    B: 'async_trait,
    R1: 'async_trait,
    R3: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn pipe<'life0, 'async_trait, P, ParSink, A>(
    self,
    pool: &'life0 P,
    sink: ParSink
) -> Pin<Box<dyn Future<Output = A> + 'async_trait>> where
    P: ThreadPool,
    ParSink: ParallelSink<Self::Item, Done = A>,
    <ParSink::Pipe as ParallelPipe<Self::Item>>::Task: 'static,
    ParSink::ReduceA: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    ParSink: 'async_trait,
    A: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn fork<'life0, 'async_trait, P, ParSinkA, ParSinkB, A, B>(
    self,
    pool: &'life0 P,
    sink_a: ParSinkA,
    sink_b: ParSinkB
) -> Pin<Box<dyn Future<Output = (A, B)> + 'async_trait>> where
    P: ThreadPool,
    ParSinkA: ParallelSink<Self::Item, Done = A>,
    ParSinkB: for<'a> ParallelSink<&'a Self::Item, Done = B> + 'static,
    <ParSinkA::Pipe as ParallelPipe<Self::Item>>::Task: 'static,
    ParSinkA::ReduceA: 'static,
    <ParSinkB as ParallelSink<&'static Self::Item>>::ReduceA: 'static,
    <<ParSinkB as ParallelSink<&'static Self::Item>>::Pipe as ParallelPipe<&'static Self::Item>>::Task: 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    ParSinkA: 'async_trait,
    ParSinkB: 'async_trait,
    A: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn group_by<'life0, 'async_trait, P, S, A, B>(
    self,
    pool: &'life0 P,
    sink: S
) -> Pin<Box<dyn Future<Output = IndexMap<A, S::Done>> + 'async_trait>> where
    P: ThreadPool,
    A: Eq + Hash + Send + 'static,
    B: 'static,
    S: ParallelSink<B>,
    <S::Pipe as ParallelPipe<B>>::Task: Clone + Send + 'static,
    S::ReduceA: 'static,
    S::ReduceC: Clone,
    S::Done: Send + 'static,
    Self::Task: 'static,
    Self: ParallelStream<Item = (A, B)> + Sized,
    P: 'async_trait,
    S: 'async_trait,
    A: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn collect<'life0, 'async_trait, P, B>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = B> + 'async_trait>> where
    P: ThreadPool,
    B: FromParallelStream<Self::Item>,
    B::ReduceA: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item) + Clone + Send + 'static,
    Self: Sized

fn update<F>(self, f: F) -> Update<Self, F> where
    F: FnMut(&mut Self::Item) + Clone + Send + 'static,
    Self: Sized

fn map<B, F>(self, f: F) -> Map<Self, F> where
    F: FnMut(Self::Item) -> B + Clone + Send + 'static,
    Self: Sized

fn flat_map<B, F>(self, f: F) -> FlatMap<Self, F> where
    F: FnMut(Self::Item) -> B + Clone + Send + 'static,
    B: Stream,
    Self: Sized

fn filter<F>(self, f: F) -> Filter<Self, F> where
    F: FnMut(&Self::Item) -> bool + Clone + Send + 'static,
    Self: Sized

fn chain<C>(self, chain: C) -> Chain<Self, C::ParStream> where
    C: IntoParallelStream<Item = Self::Item>,
    Self: Sized

#[must_use]fn for_each<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(Self::Item) + Clone + Send + 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn fold<'life0, 'async_trait, P, ID, F, B>(
    self,
    pool: &'life0 P,
    identity: ID,
    op: F
) -> Pin<Box<dyn Future<Output = B> + 'async_trait>> where
    P: ThreadPool,
    ID: FnMut() -> B + Clone + Send + 'static,
    F: FnMut(B, Either<Self::Item, B>) -> B + Clone + Send + 'static,
    B: Send + 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    ID: 'async_trait,
    F: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn histogram<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = Vec<(Self::Item, usize)>> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: Hash + Ord + Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn count<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = usize> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn sum<'life0, 'async_trait, P, S>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = S> + 'async_trait>> where
    P: ThreadPool,
    S: Sum<Self::Item> + Sum<S> + Send + 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    S: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn combine<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(Self::Item, Self::Item) -> Self::Item + Clone + Send + 'static,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn max<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: Ord + Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn max_by<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering + Clone + Send + 'static,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn max_by_key<'life0, 'async_trait, P, F, B>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(&Self::Item) -> B + Clone + Send + 'static,
    B: Ord + 'static,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn min<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: Ord + Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn min_by<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering + Clone + Send + 'static,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn min_by_key<'life0, 'async_trait, P, F, B>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = Option<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(&Self::Item) -> B + Clone + Send + 'static,
    B: Ord + 'static,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn most_frequent<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P,
    n: usize,
    probability: f64,
    tolerance: f64
) -> Pin<Box<dyn Future<Output = Top<Self::Item, usize>> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: Hash + Eq + Clone + Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn most_distinct<'life0, 'async_trait, P, A, B>(
    self,
    pool: &'life0 P,
    n: usize,
    probability: f64,
    tolerance: f64,
    error_rate: f64
) -> Pin<Box<dyn Future<Output = Top<A, HyperLogLogMagnitude<B>>> + 'async_trait>> where
    P: ThreadPool,
    Self: ParallelStream<Item = (A, B)> + Sized,
    A: Hash + Eq + Clone + Send + 'static,
    B: Hash + 'static,
    Self::Task: 'static,
    P: 'async_trait,
    A: 'async_trait,
    B: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn sample_unstable<'life0, 'async_trait, P>(
    self,
    pool: &'life0 P,
    samples: usize
) -> Pin<Box<dyn Future<Output = SampleUnstable<Self::Item>> + 'async_trait>> where
    P: ThreadPool,
    Self::Item: Send + 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn all<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = bool> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(Self::Item) -> bool + Clone + Send + 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

#[must_use]fn any<'life0, 'async_trait, P, F>(
    self,
    pool: &'life0 P,
    f: F
) -> Pin<Box<dyn Future<Output = bool> + 'async_trait>> where
    P: ThreadPool,
    F: FnMut(Self::Item) -> bool + Clone + Send + 'static,
    Self::Item: 'static,
    Self::Task: 'static,
    Self: Sized,
    P: 'async_trait,
    F: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 

Loading content...

Implementations on Foreign Types

impl<A: ParallelStream, B: ParallelStream<Item = A::Item>> ParallelStream for Sum2<A, B>[src]

type Item = A::Item

type Task = Sum2<A::Task, B::Task>

Loading content...

Implementors

impl ParallelStream for Never[src]

type Item = Self

type Task = Self

impl<A, B, C, RefAItem> ParallelStream for Fork<A, B, C, RefAItem> where
    A: ParallelStream,
    B: ParallelPipe<A::Item>,
    C: ParallelPipe<RefAItem>,
    RefAItem: 'static, 
[src]

type Item = Sum2<B::Output, C::Output>

type Task = JoinTask<A::Task, B::Task, C::Task, RefAItem>

impl<A: ParallelStream, B: ParallelPipe<A::Item>> ParallelStream for Pipe<A, B>[src]

type Item = B::Output

type Task = JoinTask<A::Task, B::Task>

impl<A: ParallelStream, B: ParallelStream<Item = A::Item>> ParallelStream for Chain<A, B>[src]

type Item = A::Item

type Task = ChainTask<A::Task, B::Task>

impl<I: Iterator> ParallelStream for IterParStream<I> where
    I::Item: Send + 'static, 
[src]

type Item = I::Item

type Task = IterStreamTask<I::Item>

impl<P: ParallelStream, F> ParallelStream for Filter<P, F> where
    F: for<'a> FnMut<(&'a P::Item,), Output = bool> + Clone + Send + 'static, 
[src]

type Item = P::Item

type Task = FilterTask<P::Task, F>

impl<P: ParallelStream, F> ParallelStream for Inspect<P, F> where
    F: for<'a> FnMut<(&'a P::Item,), Output = ()> + Clone + Send + 'static, 
[src]

type Item = P::Item

type Task = InspectTask<P::Task, F>

impl<P: ParallelStream, F> ParallelStream for Update<P, F> where
    F: for<'a> FnMut<(&'a mut P::Item,), Output = ()> + Clone + Send + 'static, 
[src]

type Item = P::Item

type Task = UpdateTask<P::Task, F>

impl<P: ParallelStream, F, R> ParallelStream for Map<P, F> where
    F: FnMut<(P::Item,), Output = R> + Clone + Send + 'static, 
[src]

type Item = R

type Task = MapTask<P::Task, F>

impl<P: ParallelStream, F, R: Stream> ParallelStream for FlatMap<P, F> where
    F: FnMut<(P::Item,), Output = R> + Clone + Send + 'static, 
[src]

type Item = R::Item

type Task = FlatMapTask<P::Task, F>

impl<S> ParallelStream for DistParStream<S> where
    S: DistributedStream
[src]

type Item = S::Item

type Task = S::Task

Loading content...