pub struct SensorReport {
pub schema: String,
pub tool: ToolMeta,
pub generated_at: String,
pub verdict: Verdict,
pub summary: String,
pub findings: Vec<Finding>,
pub artifacts: Option<Vec<Artifact>>,
pub capabilities: Option<BTreeMap<String, CapabilityStatus>>,
pub data: Option<Value>,
}Expand description
Sensor report envelope for multi-sensor integration.
The envelope provides a standardized JSON format that allows sensors to integrate with external orchestrators (“directors”) that aggregate reports from multiple code quality sensors into a unified PR view.
§Design Principles
- Stable top-level, rich underneath: Minimal stable envelope; tool-specific richness in
data - Verdict-first: Quick pass/fail/warn determination without parsing tool-specific data
- Findings are portable: Common finding structure for cross-tool aggregation
- Self-describing: Schema version and tool metadata enable forward compatibility
Fields§
§schema: StringSchema identifier (e.g., “sensor.report.v1”).
tool: ToolMetaTool identification.
generated_at: StringGeneration timestamp (ISO 8601 format).
verdict: VerdictOverall result verdict.
summary: StringHuman-readable one-line summary.
findings: Vec<Finding>List of findings (may be empty).
artifacts: Option<Vec<Artifact>>Related artifact paths.
capabilities: Option<BTreeMap<String, CapabilityStatus>>Capability availability status for “No Green By Omission”.
Reports which checks were available, unavailable, or skipped. Enables directors to distinguish between “all passed” and “nothing ran”.
data: Option<Value>Tool-specific payload (opaque to director).
Implementations§
Source§impl SensorReport
impl SensorReport
Sourcepub fn new(
tool: ToolMeta,
generated_at: String,
verdict: Verdict,
summary: String,
) -> SensorReport
pub fn new( tool: ToolMeta, generated_at: String, verdict: Verdict, summary: String, ) -> SensorReport
Create a new sensor report with the current version.
Sourcepub fn add_finding(&mut self, finding: Finding)
pub fn add_finding(&mut self, finding: Finding)
Add a finding to the report.
Sourcepub fn with_artifacts(self, artifacts: Vec<Artifact>) -> SensorReport
pub fn with_artifacts(self, artifacts: Vec<Artifact>) -> SensorReport
Set the artifacts section.
Sourcepub fn with_data(self, data: Value) -> SensorReport
pub fn with_data(self, data: Value) -> SensorReport
Set the data payload.
Sourcepub fn with_capabilities(
self,
capabilities: BTreeMap<String, CapabilityStatus>,
) -> SensorReport
pub fn with_capabilities( self, capabilities: BTreeMap<String, CapabilityStatus>, ) -> SensorReport
Set the capabilities section for “No Green By Omission”.
Sourcepub fn add_capability(
&mut self,
name: impl Into<String>,
status: CapabilityStatus,
)
pub fn add_capability( &mut self, name: impl Into<String>, status: CapabilityStatus, )
Add a single capability to the report.
Trait Implementations§
Source§impl Clone for SensorReport
impl Clone for SensorReport
Source§fn clone(&self) -> SensorReport
fn clone(&self) -> SensorReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more