Skip to main content

async_full_run

Macro async_full_run 

Source
macro_rules! async_full_run {
    ($subject:expr, $version:expr; $($fut:expr),* $(,)?) => { ... };
}
Available on crate feature async only.
Expand description

Combine multiple Future<Output = Report> values into a single MultiReport keyed by subject/version.

Async equivalent of full_run! for callers already inside an async context. Each future is awaited in sequence (use a futures-runtime helper if you need concurrency); the resulting reports are pushed into the returned dev_report::MultiReport.

Available with the async feature.

§Example

use dev_tools::async_full_run;
use dev_tools::report::{CheckResult, Report, Verdict};

async fn produce_a() -> Report {
    let mut r = Report::new("crate", "0.1.0").with_producer("a");
    r.push(CheckResult::pass("ok"));
    r.finish();
    r
}

async fn produce_b() -> Report {
    let mut r = Report::new("crate", "0.1.0").with_producer("b");
    r.push(CheckResult::pass("ok"));
    r.finish();
    r
}

let multi = async_full_run!("crate", "0.1.0"; produce_a(), produce_b()).await;
assert_eq!(multi.reports.len(), 2);
assert_eq!(multi.overall_verdict(), Verdict::Pass);