pub struct Finding {
pub priority: Priority,
pub confidence: Confidence,
pub rule_id: String,
pub interpretation: String,
pub provenance: Provenance,
pub user: Option<String>,
pub profile: Option<String>,
pub browser: Option<BrowserFamily>,
pub evidence: String,
pub next: Option<String>,
}Expand description
A court-safe forensic finding (RFC 0001 D4/D5/D9).
Priority, Confidence and Interpretation are three structurally separate axes;
provenance (Provenance) and origin (user/profile/browser) stamp
every finding with where it came from. Render with Finding::render.
Fields§
§priority: PriorityTriage attention cue — look here first, not a verdict.
confidence: ConfidenceConfidence in the interpretation (paired with rule_id).
rule_id: StringIdentifier of the rule that produced this finding.
interpretation: StringThe hedged “consistent with …” statement.
provenance: ProvenanceThe four-axis provenance record (D4).
user: Option<String>Originating user (SID or name), when known (D9).
profile: Option<String>Originating browser profile (e.g. Chrome/Default), when known (D9).
browser: Option<BrowserFamily>Originating browser family, when known (D9).
evidence: StringThe concrete datum this finding rests on
(e.g. Chrome History urls rowid gap 128 → 944).
next: Option<String>A drill-down command pointer for the examiner’s next step.
Implementations§
Source§impl Finding
impl Finding
Sourcepub fn new(
priority: Priority,
confidence: Confidence,
rule_id: impl Into<String>,
interpretation: impl Into<String>,
provenance: Provenance,
evidence: impl Into<String>,
) -> Self
pub fn new( priority: Priority, confidence: Confidence, rule_id: impl Into<String>, interpretation: impl Into<String>, provenance: Provenance, evidence: impl Into<String>, ) -> Self
Build a finding from its three separate axes, a full provenance record, and the concrete evidence datum.
Priority and Confidence are distinct types, so the three axes
cannot be conflated at a call site. Origin (user/profile/browser)
and next are attached with the with_* builder methods.
Sourcepub fn with_user(self, user: impl Into<String>) -> Self
pub fn with_user(self, user: impl Into<String>) -> Self
Stamp the originating user (SID or name) (D9).
Sourcepub fn with_profile(self, profile: impl Into<String>) -> Self
pub fn with_profile(self, profile: impl Into<String>) -> Self
Stamp the originating browser profile (D9).
Sourcepub fn with_browser(self, browser: BrowserFamily) -> Self
pub fn with_browser(self, browser: BrowserFamily) -> Self
Stamp the originating browser family (D9).
Sourcepub fn with_next(self, next: impl Into<String>) -> Self
pub fn with_next(self, next: impl Into<String>) -> Self
Attach a drill-down “next step” command pointer.
Sourcepub fn render(&self) -> String
pub fn render(&self) -> String
Render the finding as a multi-line, court-safe block.
The three axes are always shown separately and labelled; Priority is
explicitly framed as a triage attention cue (never a verdict); the
Interpretation hedge is always present. This is the only renderer for a
finding — there is no Display impl that could collapse it into a bare
conclusion. (RFC 0001 D5.)