pub struct PluginResult {
pub compliance_status: PluginComplianceStatus,
pub metrics: HashMap<String, f64>,
pub extra: Option<Value>,
pub violations: Vec<PluginFinding>,
pub warnings: Vec<PluginFinding>,
}Expand description
Compliance result returned by the plugin.
metrics is a sector-extensible map of named numeric values. Use the
METRIC_* constants for the three well-known fields; plugins may add
sector-specific keys ("water_use_litres", "pef_score", …).
§Aligning with ComplianceResult on the host
co2e_score ← metrics["co2e_score"]
repairability_index ← metrics["repairability_index"]
recycled_content_pct ← metrics["recycled_content_pct"]
compliance_status ← PluginComplianceStatus → ComplianceStatus (typed map)
violations/warnings ← PluginFinding → ComplianceFinding (host blocks on violations)Fields§
§compliance_status: PluginComplianceStatusTyped compliance determination.
metrics: HashMap<String, f64>Sector-extensible keyed metric map (all values finite f64).
extra: Option<Value>Non-numeric sector-specific data (free-form; stored verbatim in extra).
violations: Vec<PluginFinding>Binding findings — the host blocks publish for an in-force sector. Empty for passthrough / not-assessed determinations. (ABI 1.1+)
warnings: Vec<PluginFinding>Advisory / experimental findings — surfaced but never block publish (e.g. recycled-content thresholds that are not yet in force). (ABI 1.1+)
Implementations§
Source§impl PluginResult
impl PluginResult
Sourcepub fn new(status: PluginComplianceStatus) -> Self
pub fn new(status: PluginComplianceStatus) -> Self
Construct a result carrying only a compliance status.
Sourcepub fn with_metric(self, key: &str, value: f64) -> Self
pub fn with_metric(self, key: &str, value: f64) -> Self
Insert a metric unconditionally (non-finite values are silently dropped).
Sourcepub fn maybe_metric(self, key: &str, value: Option<f64>) -> Self
pub fn maybe_metric(self, key: &str, value: Option<f64>) -> Self
Insert a metric only when value is Some (non-finite values dropped).
Sourcepub fn with_extra(self, extra: Value) -> Self
pub fn with_extra(self, extra: Value) -> Self
Attach free-form non-numeric extra data.
Sourcepub fn with_violation(self, finding: PluginFinding) -> Self
pub fn with_violation(self, finding: PluginFinding) -> Self
Append a binding violation (host blocks publish for an in-force sector).
Sourcepub fn with_warning(self, finding: PluginFinding) -> Self
pub fn with_warning(self, finding: PluginFinding) -> Self
Append an advisory warning (surfaced, never blocks publish).
pub fn co2e_score(&self) -> Option<f64>
pub fn repairability_index(&self) -> Option<f64>
pub fn recycled_content_pct(&self) -> Option<f64>
Trait Implementations§
Source§impl Clone for PluginResult
impl Clone for PluginResult
Source§fn clone(&self) -> PluginResult
fn clone(&self) -> PluginResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more