#[non_exhaustive]pub struct DiffRow {Show 13 fields
pub group_key: String,
pub thread_count_a: usize,
pub thread_count_b: usize,
pub uptime_pct: Option<f64>,
pub sort_by_cell: Option<String>,
pub sort_by_delta: Option<f64>,
pub metric_name: &'static str,
pub metric_ladder: ScaleLadder,
pub baseline: Aggregated,
pub candidate: Aggregated,
pub delta: Option<f64>,
pub delta_pct: Option<f64>,
pub display_key: String,
}Expand description
One row in the comparison table: (group, metric) pair with
aggregated values from both sides.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.group_key: StringInternal join key — deterministic across snapshots and
stable for tests / programmatic consumers. For pattern-
aggregated rows (super::GroupBy::Comm or super::GroupBy::Pcomm
with bucket size ≥ 2 under default normalization), this is
the token-normalized skeleton the bucket clusters on (e.g.
kworker/{N}:{N}-mm_percpu_wq for Comm,
worker-{N} for Pcomm); for every other grouping
(CommExact, Cgroup, or pattern-aware grouping under
super::CompareOptions::no_thread_normalize) it equals the
rendered display key.
thread_count_a: usize§thread_count_b: usize§uptime_pct: Option<f64>Relative uptime % for this group (candidate side). 100% = as long-lived as the oldest group, 0% = just spawned.
sort_by_cell: Option<String>Sort-by metric cell: “baseline → candidate (delta%)” for the metric specified by –sort-by. Same value for every row in a group. None when no –sort-by is set.
sort_by_delta: Option<f64>Sort metric’s delta for this group (for coloring the SortBy column).
metric_name: &'static str§metric_ladder: ScaleLadderAuto-scale ladder for the row’s value/delta cells. Sourced
from metric.rule.ladder() at build time so the format
dispatch stays a closed match (no string-keyed
pass-through branch).
baseline: Aggregated§candidate: Aggregated§delta: Option<f64>Signed candidate − baseline for numeric-capable rules.
delta_pct: Option<f64>delta / baseline as a fraction. None when baseline is
zero or the row has no numeric projection.
display_key: StringOperator-facing rendering of the group key. Equals
group_key for non-pattern groupings; for super::GroupBy::Comm
or super::GroupBy::Pcomm pattern buckets containing ≥ 2
distinct member literals, this carries a grex-generated
regex over the union of baseline+candidate members so the
operator sees exactly which names landed in the bucket —
but only when built with the pretty-labels feature and
the regex is no longer than the key; otherwise (including
all default builds) it equals group_key.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DiffRow
impl RefUnwindSafe for DiffRow
impl Send for DiffRow
impl Sync for DiffRow
impl Unpin for DiffRow
impl UnwindSafe for DiffRow
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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