MetricCheck

Enum MetricCheck 

Source
pub enum MetricCheck {
    Min {
        metric: &'static str,
        value: f64,
    },
    Max {
        metric: &'static str,
        value: f64,
    },
    Range {
        metric: &'static str,
        lo: f64,
        hi: f64,
    },
    Exists(&'static str),
    ExitCodeEq(i32),
}
Expand description

Assertion check evaluated against an extracted PayloadMetrics (or the exit code for MetricCheck::ExitCodeEq).

Variants§

§

Min

Fail when the named metric is below value.

Fields

§metric: &'static str
§value: f64
§

Max

Fail when the named metric exceeds value.

Fields

§metric: &'static str
§value: f64
§

Range

Fail when the named metric is outside [lo, hi].

Fields

§metric: &'static str
§lo: f64
§hi: f64
§

Exists(&'static str)

Fail when the named metric is missing from the extracted set.

§

ExitCodeEq(i32)

Fail when the payload’s exit code is not equal to expected.

Implementations§

Source§

impl MetricCheck

Source

pub const fn min(metric: &'static str, value: f64) -> MetricCheck

Fail when the named metric is below value. Missing metric fails loudly per the evaluation pipeline’s missing-metric contract.

Source

pub const fn max(metric: &'static str, value: f64) -> MetricCheck

Fail when the named metric exceeds value. Missing metric fails loudly.

Source

pub const fn range(metric: &'static str, lo: f64, hi: f64) -> MetricCheck

Fail when the named metric falls outside [lo, hi] (inclusive on both ends). Missing metric fails loudly.

§Panics

Panics at construction when lo > hi — a reversed-bounds range describes an empty interval that no finite metric can satisfy, almost certainly a user error rather than an intentional always-fails check. Failing at the constructor surfaces the typo at the call site instead of letting the evaluator run an unsatisfiable check against every probe value. NaN bounds also trip this gate because lo <= hi is false for any NaN argument.

Source

pub const fn exists(metric: &'static str) -> MetricCheck

Fail when the named metric is absent from the extracted set. Presence-only — the metric value can be any finite number, including zero or negative.

Source

pub const fn exit_code_eq(expected: i32) -> MetricCheck

Fail when the payload’s exit code differs from expected. Evaluated before metric-path checks so a mis-exited binary reports the exit-code mismatch rather than chained missing-metric failures.

Source

pub const fn min_builtin(metric: BuiltinMetric, value: f64) -> MetricCheck

Typed sibling of Self::min — a typo-proof BuiltinMetric instead of a registry-name string. const (via BuiltinMetric::wire_name) so it composes in const payload-check tables exactly like Self::min. Use this for a registered built-in metric; keep Self::min for the dynamic keyspace (dotted JSON-leaf paths from OutputFormat::Json, scheduler-runtime keys).

use ktstr::prelude::*;
// The typed checks compose into a `const` table — exactly the
// `&'static [MetricCheck]` a `Payload` carries in `default_checks`:
const CHECKS: &[MetricCheck] = &[
    MetricCheck::min_builtin(BuiltinMetric::TaobenchTotalQps, 1000.0),
    MetricCheck::exists_builtin(BuiltinMetric::SchbenchLoopCount),
];
assert_eq!(CHECKS.len(), 2);
Source

pub const fn max_builtin(metric: BuiltinMetric, value: f64) -> MetricCheck

Typed sibling of Self::max — see Self::min_builtin.

Source

pub const fn range_builtin( metric: BuiltinMetric, lo: f64, hi: f64, ) -> MetricCheck

Typed sibling of Self::range — see Self::min_builtin. Same reversed-bounds construction panic as Self::range.

Source

pub const fn exists_builtin(metric: BuiltinMetric) -> MetricCheck

Typed sibling of Self::exists — see Self::min_builtin.

Trait Implementations§

Source§

impl Clone for MetricCheck

Source§

fn clone(&self) -> MetricCheck

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MetricCheck

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for MetricCheck

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> MaybeSend for T
where T: Send,

§

impl<T> MaybeSend for T
where T: Send,