microasync-rt 0.2.1

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

use microasync::{join, sync};
use microasync_rt::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
}