Skip to main content

full_run

Macro full_run 

Source
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);