Use trpl::join to run two futures or trpl::join_all for a collection of futures concurrently.
use std::time::Duration;
trpl::block_on(async {
let fut_a = async { println!("Task A"); trpl::sleep(Duration::from_millis(100)).await; };
let fut_b = async { println!("Task B"); trpl::sleep(Duration::from_millis(100)).await; };
trpl::join(fut_a, fut_b).await;
});
For more than two futures, wrap them in a vector and use trpl::join_all:
use std::time::Duration;
trpl::block_on(async {
let futures = vec![
async { println!("Task 1"); trpl::sleep(Duration::from_millis(100)).await; },
async { println!("Task 2"); trpl::sleep(Duration::from_millis(100)).await; },
];
trpl::join_all(futures).await;
});