[][src]Function heim_common::prelude::futures::future::try_join4

pub fn try_join4<Fut1, Fut2, Fut3, Fut4>(
    future1: Fut1,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> TryJoin4<Fut1, Fut2, Fut3, Fut4>

Notable traits for TryJoin4<Fut1, Fut2, Fut3, Fut4>

impl<Fut1, Fut2, Fut3, Fut4> Future for TryJoin4<Fut1, Fut2, Fut3, Fut4> where
    Fut1: TryFuture,
    Fut2: TryFuture<Error = <Fut1 as TryFuture>::Error>,
    Fut3: TryFuture<Error = <Fut1 as TryFuture>::Error>,
    Fut4: TryFuture<Error = <Fut1 as TryFuture>::Error>, 
type Output = Result<(<Fut1 as TryFuture>::Ok, <Fut2 as TryFuture>::Ok, <Fut3 as TryFuture>::Ok, <Fut4 as TryFuture>::Ok), <Fut1 as TryFuture>::Error>;
where
    Fut1: TryFuture,
    Fut2: TryFuture<Error = <Fut1 as TryFuture>::Error>,
    Fut3: TryFuture<Error = <Fut1 as TryFuture>::Error>,
    Fut4: TryFuture<Error = <Fut1 as TryFuture>::Error>, 

Same as try_join, but with more futures.

Examples

use futures::future;

let a = future::ready(Ok::<i32, i32>(1));
let b = future::ready(Ok::<i32, i32>(2));
let c = future::ready(Ok::<i32, i32>(3));
let d = future::ready(Ok::<i32, i32>(4));
let tuple = future::try_join4(a, b, c, d);

assert_eq!(tuple.await, Ok((1, 2, 3, 4)));