pub struct HardwareStateDelta {
pub elapsed_s: Option<u64>,
pub sw_power_cap_us: Option<u64>,
pub sw_thermal_us: Option<u64>,
pub hw_thermal_us: Option<u64>,
pub hw_power_brake_us: Option<u64>,
pub gpu_temp_delta_c: Option<f64>,
pub hottest_chassis_delta_c: Option<f64>,
}Expand description
2026-09-26: What changed across the run.
A box that starts cool and throttles midway has a healthy pre-state; whether a throttle counter advanced while the benchmark ran is visible only in the difference of two captures.
Fields§
§elapsed_s: Option<u64>§sw_power_cap_us: Option<u64>§sw_thermal_us: Option<u64>§hw_thermal_us: Option<u64>§hw_power_brake_us: Option<u64>§gpu_temp_delta_c: Option<f64>§hottest_chassis_delta_c: Option<f64>Implementations§
Source§impl HardwareStateDelta
impl HardwareStateDelta
pub fn between(before: &HardwareState, after: &HardwareState) -> Self
Sourcepub fn thermal_throttle_advanced(&self) -> Option<bool>
pub fn thermal_throttle_advanced(&self) -> Option<bool>
2026-09-26: Did a thermal throttle counter (SW thermal, HW thermal, HW power brake) accumulate time during the run?
Some(true) when any readable one advanced; Some(false) only when all
three were readable and none advanced; otherwise None, which the policy
renders as unknown. SW power cap is excluded for the reason given on
ThrottleActive::thermal.
Sourcepub fn thermal_counters_complete(&self) -> bool
pub fn thermal_counters_complete(&self) -> bool
2026-09-26: True when every counter Self::thermal_throttle_fraction sums
was readable on both captures.
When false the fraction is a lower bound, and the caller must say so: an unreadable counter contributes nothing to the sum.
Sourcepub fn thermal_throttle_fraction(&self) -> Option<f64>
pub fn thermal_throttle_fraction(&self) -> Option<f64>
2026-09-26: The throttled fraction of the run: the readable thermal counters’ sum over the elapsed time.
None when the run has no positive duration, or when no thermal counter
was readable on both captures. A lower bound when only some were; see
Self::thermal_counters_complete.
Trait Implementations§
Source§impl Clone for HardwareStateDelta
impl Clone for HardwareStateDelta
Source§fn clone(&self) -> HardwareStateDelta
fn clone(&self) -> HardwareStateDelta
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HardwareStateDelta
impl Debug for HardwareStateDelta
Source§impl Default for HardwareStateDelta
impl Default for HardwareStateDelta
Source§fn default() -> HardwareStateDelta
fn default() -> HardwareStateDelta
Source§impl<'de> Deserialize<'de> for HardwareStateDelta
impl<'de> Deserialize<'de> for HardwareStateDelta
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HardwareStateDelta
impl PartialEq for HardwareStateDelta
Source§impl Serialize for HardwareStateDelta
impl Serialize for HardwareStateDelta
impl StructuralPartialEq for HardwareStateDelta
Auto Trait Implementations§
impl Freeze for HardwareStateDelta
impl RefUnwindSafe for HardwareStateDelta
impl Send for HardwareStateDelta
impl Sync for HardwareStateDelta
impl Unpin for HardwareStateDelta
impl UnwindSafe for HardwareStateDelta
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
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