fix: use tagged enum serialization for MoistureSensorError and PumpError

This commit is contained in:
2026-05-10 02:46:22 +02:00
parent ddbe9d6a4b
commit 44d1ae547d

View File

@@ -12,10 +12,11 @@ const MOIST_SENSOR_MAX_FREQUENCY: f32 = 7500.; // 60kHz (500Hz margin)
const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels
#[derive(Debug, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub enum MoistureSensorError {
ShortCircuit { hz: f32, max: f32 },
OpenLoop { hz: f32, min: f32 },
BoardError(String),
BoardError { message: String },
}
#[derive(Debug, PartialEq, Serialize)]
@@ -49,6 +50,7 @@ impl MoistureSensorState {
impl MoistureSensorState {}
#[derive(Debug, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub enum PumpError {
PumpNotWorking {
failed_attempts: usize,
@@ -134,9 +136,9 @@ impl PlantState {
},
Err(err) => MoistureSensorState::SensorError(err),
},
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError(
err.to_string(),
)),
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError {
message: err.to_string(),
})
}
} else {
MoistureSensorState::Disabled
@@ -159,9 +161,9 @@ impl PlantState {
},
Err(err) => MoistureSensorState::SensorError(err),
},
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError(
err.to_string(),
)),
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError {
message: err.to_string(),
})
}
} else {
MoistureSensorState::Disabled