Files
shturman/crates/shturman-ipc/src/error.rs
T
kk0t9 2b06ff749f fix(review): Settings — типизированный SettingValue + лог битого JSON + Error::Failed + чистый reset
- SettingValue{Str,Int,Bool} в сторе: провод-variant теперь честно поддержан (не string-only).
- битый settings.json → WARN в лог (не молча) + откат к дефолтам.
- отказ записи /data → Error::Failed (не InvalidArgument).
- reset ключа без дефолта → no-op + InvalidArgument (без ложного Changed("")).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
2026-06-24 14:36:50 +03:00

24 lines
1.2 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! Контракт ошибок шины — `ru.shturman.Error.*` (ipc §2).
/// D-Bus-ошибки Штурмана. Маппинг в `ru.shturman.Error.<Variant>` — через `zbus::DBusError`.
/// В v0 реально используется `InvalidArgument` (Settings); остальные — зарезервированы по мере сервисов.
#[derive(Debug, zbus::DBusError)]
#[zbus(prefix = "ru.shturman.Error")]
pub enum Error {
/// Транспортные ошибки zbus (catch-all).
#[zbus(error)]
ZBus(zbus::Error),
PermissionDenied(String),
/// PID/сигнал не поддержан машиной (постоянно).
NotAvailable(String),
/// Транзиентно: устарело / двигатель заглушен / таймаут.
Stale(String),
Timeout(String),
ReadOnly(String),
InvalidArgument(String),
Unsupported(String),
/// Внутренний сбой сервиса (напр. отказ записи в `/data`) — НЕ путать с `InvalidArgument`
/// (плохой ввод клиента). Аддитивно к набору ipc §2 (синхронизировать ipc.md при реализации).
Failed(String),
}