pub struct ServiceComplianceNode {
pub node_index: usize,
pub sample_count: usize,
pub within_limits_count: usize,
pub below_min_count: usize,
pub above_max_count: usize,
pub longest_violation_streak: usize,
pub pressure_deficit_integral: f64,
pub pressure_excess_integral: f64,
pub worst_below_min: f64,
pub worst_above_max: f64,
}Expand description
Per-node service-compliance metrics for a single simulation run.
Fields§
§node_index: usizeZero-based index of this node in crate::Network::nodes.
sample_count: usizeTotal number of reporting-period pressure samples for this node.
within_limits_count: usizeNumber of samples with pressure within [min_pressure, max_pressure].
below_min_count: usizeNumber of samples below min_pressure.
above_max_count: usizeNumber of samples above max_pressure (always 0 when no upper limit is set).
longest_violation_streak: usizeLength of the longest consecutive run of out-of-limit samples.
pressure_deficit_integral: f64Integral of pressure deficit over time (m · periods).
Accumulated as sum(max(min_pressure − pressure, 0)) across all samples.
pressure_excess_integral: f64Integral of pressure excess over time (m · periods).
Accumulated as sum(max(pressure − max_pressure, 0)) across all samples.
worst_below_min: f64Worst (largest) observed pressure deficit: max(min_pressure − pressure) (m).
worst_above_max: f64Worst (largest) observed pressure excess: max(pressure − max_pressure) (m).
Implementations§
Source§impl ServiceComplianceNode
impl ServiceComplianceNode
Sourcepub fn violating_sample_count(&self) -> usize
pub fn violating_sample_count(&self) -> usize
Number of samples that fell outside the acceptable pressure range.
Sourcepub fn violation_ratio(&self) -> f64
pub fn violation_ratio(&self) -> f64
Fraction of samples that were out-of-limit, in [0, 1].
Trait Implementations§
Source§impl Clone for ServiceComplianceNode
impl Clone for ServiceComplianceNode
Source§fn clone(&self) -> ServiceComplianceNode
fn clone(&self) -> ServiceComplianceNode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more