fix(review): manifest deny_unknown_fields + каталог сигналов в sdk::vehicle
- deny_unknown_fields: опечатка в ключе capability (граница доверия F §3) не проглатывается. - VEHICLE_SIGNALS → shturman_sdk::vehicle (single source; валидатор берёт оттуда). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
@@ -2,27 +2,6 @@
|
||||
|
||||
use shturman_sdk::Manifest;
|
||||
|
||||
/// Каталог стандартных сигналов (data-model §4). `vehicle_read` допускает только их.
|
||||
const VEHICLE_SIGNALS: &[&str] = &[
|
||||
"speed",
|
||||
"rpm",
|
||||
"engine_load",
|
||||
"coolant_temp",
|
||||
"intake_temp",
|
||||
"maf",
|
||||
"throttle",
|
||||
"intake_pressure",
|
||||
"fuel_level",
|
||||
"module_voltage",
|
||||
"ambient_temp",
|
||||
"oil_temp",
|
||||
"fuel_rate",
|
||||
"run_time",
|
||||
"mil_on",
|
||||
"dtc_count",
|
||||
"distance_mil",
|
||||
];
|
||||
|
||||
/// Поддерживаемые мажоры API (plugin-sdk §7).
|
||||
const SUPPORTED_API: &[&str] = &["1"];
|
||||
|
||||
@@ -55,9 +34,9 @@ pub fn validate(m: &Manifest) -> Vec<String> {
|
||||
));
|
||||
}
|
||||
|
||||
// vehicle_read только из каталога data-model
|
||||
// vehicle_read только из каталога data-model (single source — shturman_sdk::vehicle)
|
||||
for sig in &m.capabilities.vehicle_read {
|
||||
if !VEHICLE_SIGNALS.contains(&sig.as_str()) {
|
||||
if !shturman_sdk::vehicle::is_known(sig) {
|
||||
errs.push(format!("vehicle_read '{sig}' нет в каталоге data-model"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user