pub struct BenchmarkDescriptor {
pub id: &'static str,
pub name: &'static str,
pub summary: &'static str,
pub detail: &'static str,
pub duration_hint: &'static str,
pub expected_secs: u64,
pub updated: &'static str,
pub needs_confirmation: bool,
pub intended_for: Option<ModelExpectation>,
pub threshold_params: &'static [(&'static str, &'static str)],
pub sensitivity: Sensitivity,
pub ctor: fn() -> Box<dyn DynBenchmark>,
}Expand description
2026-09-26: Static identity of a benchmark, and how to construct one. The
registry (registry::ALL), the TUI list pane and the run directories
(ArtifactStore::runs_dir) all read it.
Fields§
§id: &'static str2026-09-26: Stable and filename-safe ([a-z0-9-], checked by
registry::tests::ids_are_unique_and_filename_safe). Names the run
directory <home>/runs/<id>/.
name: &'static str§summary: &'static str2026-09-26: One line for the suite list.
detail: &'static str2026-09-26: A paragraph for the detail pane: what it measures and what it costs.
duration_hint: &'static str2026-09-26: Rough wall time at default parameters, for display, e.g.
"~15 min".
expected_secs: u642026-09-26: Expected wall time at default parameters, in seconds: the
certification planner’s estimate when no completed run of this id has
been measured (bench_certify::plan::units). Zero only on descriptors
whose duration_hint starts with unrunnable
(registry::tests::every_runnable_benchmark_declares_an_expected_duration).
updated: &'static str2026-09-26: When this benchmark’s measurement last changed (new
thresholds, prompt set or scoring rule), as YYYY-MM-DD; not when its
code was edited. It tells a reader whether two runs are comparable.
needs_confirmation: bool2026-09-26: True when starting has a side effect beyond load on the
endpoint. The TUI (tui::bench_keys) and bench certify (--yes)
require an explicit confirmation for these.
intended_for: Option<ModelExpectation>2026-09-26: The checkpoint families this benchmark is defined on, if
any. The executor’s endpoint check (coherence::probe_for) warns on a
mismatch and never refuses the run. None means the benchmark measures
whatever it is pointed at.
threshold_params: &'static [(&'static str, &'static str)]2026-09-26: Parameters whose run-time value comes from the selected
model variant’s committed bound, as (param key, metric key) pairs, for
benchmarks that compute their own verdict against a knob that is also a
BENCH.toml threshold (the agentic gate’s wall_budget_s against
sum_wall_s). A gate run (bench_resolve::apply_threshold_params) and
the TUI derive the value from the variant’s bound; an explicit --param
wins.
sensitivity: Sensitivity2026-09-26: Whether this benchmark’s number is a speed number, and so
corruptible by the state of the box that produced it. A required field
of the descriptor, not a list in the hardware policy, so every new
benchmark has to answer it. See crate::hardware::policy.
ctor: fn() -> Box<dyn DynBenchmark>Implementations§
Source§impl BenchmarkDescriptor
impl BenchmarkDescriptor
pub fn build(&self) -> Box<dyn DynBenchmark>
Auto Trait Implementations§
impl Freeze for BenchmarkDescriptor
impl RefUnwindSafe for BenchmarkDescriptor
impl Send for BenchmarkDescriptor
impl Sync for BenchmarkDescriptor
impl Unpin for BenchmarkDescriptor
impl UnwindSafe for BenchmarkDescriptor
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more