Skip to main content

EffortlessSensor

Trait EffortlessSensor 

Source
pub trait EffortlessSensor {
    type Settings: Serialize + DeserializeOwned;

    // Required methods
    fn name(&self) -> &str;
    fn version(&self) -> &str;
    fn run(
        &self,
        settings: &Self::Settings,
        substrate: &RepoSubstrate,
    ) -> Result<SensorReport>;
}
Expand description

Trait for effortless code quality sensors.

A sensor receives a pre-built RepoSubstrate (shared context from a single tokei scan + git diff) and produces a SensorReport.

§Design

  • Settings: Each sensor defines its own settings type.
  • Substrate: Shared context eliminates redundant I/O across sensors.
  • Report: Standardized envelope for cross-fleet aggregation.

Required Associated Types§

Source

type Settings: Serialize + DeserializeOwned

Settings type for this sensor (must be JSON-serializable).

Required Methods§

Source

fn name(&self) -> &str

Sensor name (e.g., “tokmd”, “coverage-bot”).

Source

fn version(&self) -> &str

Sensor version (e.g., “1.5.0”).

Source

fn run( &self, settings: &Self::Settings, substrate: &RepoSubstrate, ) -> Result<SensorReport>

Run the sensor with the given settings and substrate.

Implementors§