dfir_rs 0.16.0

DFIR runtime for Rust, used by Hydro.
Documentation
use dfir_rs::dfir_syntax;
use dfir_rs::util::collect_ready_async;
use multiplatform_test::multiplatform_test;
use tokio::time::{Duration, sleep};

#[multiplatform_test(dfir, env_tracing)]
async fn single_batch_test() {
    let (result_send, mut result_recv) = dfir_rs::util::unbounded_channel::<u32>();

    let mut df = dfir_syntax! {
        source_iter(0..10)
        -> map(|x| async move {
            sleep(Duration::from_millis(100)).await;
            x
        })
        -> resolve_futures_blocking_ordered()
        -> for_each(|x| result_send.send(x).unwrap());
    };

    df.run_tick().await;
    assert_eq!(
        Vec::from_iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
        collect_ready_async::<Vec<_>, _>(&mut result_recv).await
    );
}