pub trait Join {
    type Output;
    type Future: Future<Output = Self::Output>;

    // Required method
    fn join(self) -> Self::Future;
}
Expand description

Wait for all futures to complete.

Awaits multiple futures simultaneously, returning the output of the futures once all complete.

Required Associated Types§

source

type Output

The resulting output type.

source

type Future: Future<Output = Self::Output>

Which kind of future are we turning this into?

Required Methods§

source

fn join(self) -> Self::Future

Waits for multiple futures to complete.

Awaits multiple futures simultaneously, returning the output of the futures once all complete.

This function returns a new future which polls all futures concurrently.

Implementations on Foreign Types§

source§

impl<A, B, C, D> Join for (A, B, C, D)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output, <D as IntoFuture>::Output)

§

type Future = Join4<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture, <D as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A, B, C, D, E, F, G> Join for (A, B, C, D, E, F, G)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output, <D as IntoFuture>::Output, <E as IntoFuture>::Output, <F as IntoFuture>::Output, <G as IntoFuture>::Output)

§

type Future = Join7<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture, <D as IntoFuture>::IntoFuture, <E as IntoFuture>::IntoFuture, <F as IntoFuture>::IntoFuture, <G as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A, B, C, D, E, F, G, H, I, J, K> Join for (A, B, C, D, E, F, G, H, I, J, K)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture, H: IntoFuture, I: IntoFuture, J: IntoFuture, K: IntoFuture,

source§

impl<A, B, C, D, E, F, G, H> Join for (A, B, C, D, E, F, G, H)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture, H: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output, <D as IntoFuture>::Output, <E as IntoFuture>::Output, <F as IntoFuture>::Output, <G as IntoFuture>::Output, <H as IntoFuture>::Output)

§

type Future = Join8<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture, <D as IntoFuture>::IntoFuture, <E as IntoFuture>::IntoFuture, <F as IntoFuture>::IntoFuture, <G as IntoFuture>::IntoFuture, <H as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl Join for ()

§

type Output = ()

§

type Future = Join0

source§

fn join(self) -> Self::Future

source§

impl<A, B, C> Join for (A, B, C)where A: IntoFuture, B: IntoFuture, C: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output)

§

type Future = Join3<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A, B, C, D, E, F, G, H, I> Join for (A, B, C, D, E, F, G, H, I)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture, H: IntoFuture, I: IntoFuture,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Join for (A, B, C, D, E, F, G, H, I, J, K, L)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture, H: IntoFuture, I: IntoFuture, J: IntoFuture, K: IntoFuture, L: IntoFuture,

source§

impl<Fut, const N: usize> Join for [Fut; N]where Fut: IntoFuture,

§

type Output = [<Fut as IntoFuture>::Output; N]

§

type Future = Join<<Fut as IntoFuture>::IntoFuture, N>

source§

fn join(self) -> Self::Future

source§

impl<A, B, C, D, E> Join for (A, B, C, D, E)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output, <D as IntoFuture>::Output, <E as IntoFuture>::Output)

§

type Future = Join5<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture, <D as IntoFuture>::IntoFuture, <E as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A, B, C, D, E, F, G, H, I, J> Join for (A, B, C, D, E, F, G, H, I, J)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture, G: IntoFuture, H: IntoFuture, I: IntoFuture, J: IntoFuture,

source§

impl<A, B, C, D, E, F> Join for (A, B, C, D, E, F)where A: IntoFuture, B: IntoFuture, C: IntoFuture, D: IntoFuture, E: IntoFuture, F: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output, <C as IntoFuture>::Output, <D as IntoFuture>::Output, <E as IntoFuture>::Output, <F as IntoFuture>::Output)

§

type Future = Join6<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture, <C as IntoFuture>::IntoFuture, <D as IntoFuture>::IntoFuture, <E as IntoFuture>::IntoFuture, <F as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<Fut> Join for Vec<Fut>where Fut: IntoFuture,

§

type Output = Vec<<Fut as IntoFuture>::Output, Global>

§

type Future = Join<<Fut as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A, B> Join for (A, B)where A: IntoFuture, B: IntoFuture,

§

type Output = (<A as IntoFuture>::Output, <B as IntoFuture>::Output)

§

type Future = Join2<<A as IntoFuture>::IntoFuture, <B as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

source§

impl<A> Join for (A,)where A: IntoFuture,

§

type Output = (<A as IntoFuture>::Output,)

§

type Future = Join1<<A as IntoFuture>::IntoFuture>

source§

fn join(self) -> Self::Future

Implementors§