microasync-util 0.1.7

Utilities for the very small async runner
Documentation
use std::{thread, time::Duration};

use microasync::{sync, join};
use microasync_util::defer;


fn main() {
    println!("{}", sync(join!(test(), async { is_alive().await; "".to_owned() }))[0]);
}

async fn is_alive() {
    println!("The runtime is NOT blocked by the test() function: This future runs *after* the poll\
        to the test() function, so if this runs before test() is done, that means test() returned\
        Poll::Pending and is not blocking.");
}

async fn test() -> String {
    defer(|(s,)| {
        thread::sleep(Duration::from_millis(2000));
        s + "world"
    }, ("Hello, ".to_owned(),)).await
}