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§
Sourcetype Settings: Serialize + DeserializeOwned
type Settings: Serialize + DeserializeOwned
Settings type for this sensor (must be JSON-serializable).
Required Methods§
Sourcefn run(
&self,
settings: &Self::Settings,
substrate: &RepoSubstrate,
) -> Result<SensorReport>
fn run( &self, settings: &Self::Settings, substrate: &RepoSubstrate, ) -> Result<SensorReport>
Run the sensor with the given settings and substrate.