Skip to main content

render_markdown_template

Function render_markdown_template 

Source
pub fn render_markdown_template(
    compare: &CompareReceipt,
    template: &str,
) -> Result<String>
Expand description

Render a CompareReceipt using a custom Handlebars template.

ยงExamples

let compare = CompareReceipt {
    schema: COMPARE_SCHEMA_V1.to_string(),
    tool: ToolInfo { name: "perfgate".into(), version: "0.1.0".into() },
    bench: BenchMeta {
        name: "my-bench".into(), cwd: None,
        command: vec!["echo".into()], repeat: 3, warmup: 0,
        work_units: None, timeout_ms: None,
    },
    baseline_ref: CompareRef { path: None, run_id: None },
    current_ref: CompareRef { path: None, run_id: None },
    budgets: BTreeMap::new(),
    deltas: BTreeMap::from([(Metric::WallMs, Delta {
        baseline: 100.0, current: 110.0, ratio: 1.1, pct: 0.1,
        regression: 0.1, statistic: MetricStatistic::Median,
        significance: None, status: MetricStatus::Pass,
    })]),
    verdict: Verdict {
        status: VerdictStatus::Pass,
        counts: VerdictCounts { pass: 1, warn: 0, fail: 0 },
        reasons: vec![],
    },
};
let rendered = perfgate_render::render_markdown_template(
    &compare,
    "Bench: {{bench.name}}, Verdict: {{verdict.status}}",
).unwrap();
assert!(rendered.contains("Bench: my-bench"));
assert!(rendered.contains("Verdict: pass"));