pub struct ProbeSpec {
pub id: &'static str,
pub group: Group,
pub subject: Subject,
pub results: usize,
pub always: bool,
pub exclusive: bool,
pub run: for<'a> fn(&'a Ctx) -> ProbeFuture<'a>,
}Expand description
One entry in the suite.
A step may emit several ProbeResults — identity alone produces seven —
so the unit of selection is coarser than the unit of reporting. That is
deliberate: the multi-result steps share state and sampling between their
parts, and letting a caller pick half of one would silently change what the
other half means.
Fields§
§id: &'static strStable across releases. Callers persist these, filter on them, and localise labels from them, so renaming one is a breaking change.
group: GroupWhich section of the report this step’s results land in. Also selectable
— see Selection::only — so identity addresses the whole family of
identity steps without naming each one.
subject: Subject§results: usizeHow many results this step contributes, for progress totals. Steps whose output depends on what earlier steps observed report their maximum.
always: boolRuns regardless of the caller’s subject filter, because the rest of the suite is meaningless without it.
exclusive: boolMust have the run to itself: nothing else may be in flight while it
runs. See [run_steps] for why anything measuring a clock has to be.
run: for<'a> fn(&'a Ctx) -> ProbeFuture<'a>