hooks 3.0.0-alpha.15

Compile-time, async hooks
Documentation
pub(crate) fn assert_timeout<Fut: std::future::Future>(
    get_fut: impl FnOnce() -> Fut,
    timeout: u64,
) {
    let res = futures_lite::future::block_on(async {
        let duration = std::time::Duration::from_millis(timeout);
        futures_lite::future::or(
            //
            async { Ok(get_fut().await) },
            async {
                async_io::Timer::after(duration).await;
                Err(())
            },
        )
        .await
    });

    assert!(res.is_err());
}

pub(crate) fn assert_always_pending<Fut: std::future::Future>(get_fut: impl FnOnce() -> Fut) {
    const TIMEOUT: u64 = 100;
    assert_timeout(get_fut, TIMEOUT)
}