macro_rules! full_run {
($subject:expr, $version:expr; $($producer:expr),* $(,)?) => { ... };
}Expand description
Combine multiple dev_report::Producer results into a single
MultiReport keyed by subject/version.
Pure composition: no new types, no new logic. Each producer is
invoked once via Producer::produce() and pushed into the
returned dev_report::MultiReport.
ยงExample
use dev_tools::full_run;
use dev_tools::report::{CheckResult, Producer, Report, Verdict};
struct A;
impl Producer for A {
fn produce(&self) -> Report {
let mut r = Report::new("crate", "0.1.0").with_producer("a");
r.push(CheckResult::pass("ok"));
r.finish();
r
}
}
struct B;
impl Producer for B {
fn produce(&self) -> Report {
let mut r = Report::new("crate", "0.1.0").with_producer("b");
r.push(CheckResult::pass("ok"));
r.finish();
r
}
}
let multi = full_run!("crate", "0.1.0"; A, B);
assert_eq!(multi.reports.len(), 2);
assert_eq!(multi.overall_verdict(), Verdict::Pass);