Macro join::try_join_async

source ·
try_join_async!() { /* proc-macro */ }
Expand description

Use to combine futures. It transposes tuple of Results into Result of tuple or single Result in case of 1 branch.

Example:

#![recursion_limit="256"]

extern crate join;
extern crate futures;

use join::try_join_async;
use futures::future::ok;

#[tokio::main]
async fn main() {
    let product = try_join_async! {
        ok::<_,()>(2u16) => |v| ok::<_,()>(v + 2u16),
        ok::<_,()>(3u16),
        ok::<_,()>(4u16),
        map => |a, b, c| a * b * c
    }.await.unwrap();

    assert_eq!(product, 48);
}