pub struct Finding {
pub id: String,
pub title: String,
pub category: Category,
pub severity: Severity,
pub mitre: Vec<Mitre>,
pub affected: Vec<String>,
pub detail: String,
pub evidence: Vec<Evidence>,
pub impact: Option<String>,
pub remediation: String,
pub weight_bonus: u32,
}Fields§
§id: String§title: String§category: Category§severity: Severity§mitre: Vec<Mitre>§affected: Vec<String>DNs / SIDs the finding points at.
detail: StringWhat was observed (evidence-level: raw stat, matched attribute, etc.).
evidence: Vec<Evidence>Ground-truth evidence (WS-PROOF): the raw server/client artifacts that prove this finding, each verifiable by hand. Empty only for not-yet-evidenced legacy rules; the 1.4.3 goal is every finding carries ≥1. Reports/UIs render it under a distinct “Evidence” heading.
impact: Option<String>Attack-chain narrative: if an attacker acted on this finding, what would happen?
1-2 sentences. Optional so downstream Finding producers can leave it blank; UIs
render it under a distinct “Impact” heading and reports omit the section if None.
remediation: String§weight_bonus: u32Extra weight beyond the severity base (e.g. per-object scaling).
Implementations§
Source§impl Finding
impl Finding
Sourcepub fn with_impact(self, impact: impl Into<String>) -> Self
pub fn with_impact(self, impact: impl Into<String>) -> Self
Chainable setter for Self::impact — used by rule constructors that want to
annotate the attack-chain narrative alongside the raw evidence.
Sourcepub fn with_evidence(
self,
source: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn with_evidence( self, source: impl Into<String>, value: impl Into<String>, ) -> Self
Attach one piece of ground-truth evidence (chainable) — see Evidence.
Sourcepub fn with_evidences(self, ev: impl IntoIterator<Item = Evidence>) -> Self
pub fn with_evidences(self, ev: impl IntoIterator<Item = Evidence>) -> Self
Attach several evidence rows at once (chainable).