feat(domain): implement RelayState enum with serialization support
Add RelayState enum to domain layer with: - Display, Debug, Clone, Copy, PartialEq, Eq derives - serde Serialize/Deserialize traits for API JSON handling - Type-safe representation of relay on/off states TDD green phase: Tests from T019 now pass. Ref: T020 (specs/001-modbus-relay-control/tasks.md)
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
/// State of a relay (on or off).
|
/// State of a relay (on or off).
|
||||||
///
|
///
|
||||||
/// Represents the binary state of a relay channel in the Modbus controller.
|
/// Represents the binary state of a relay channel in the Modbus controller.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub enum RelayState {
|
pub enum RelayState {
|
||||||
/// Relay is energized (circuit closed).
|
/// Relay is energized (circuit closed).
|
||||||
|
#[serde(rename = "on")]
|
||||||
On,
|
On,
|
||||||
/// Relay is de-energized (circuit open).
|
/// Relay is de-energized (circuit open).
|
||||||
|
#[serde(rename = "off")]
|
||||||
Off,
|
Off,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -225,7 +225,7 @@
|
|||||||
- **File**: src/domain/relay.rs
|
- **File**: src/domain/relay.rs
|
||||||
- **Complexity**: Low | **Uncertainty**: Low
|
- **Complexity**: Low | **Uncertainty**: Low
|
||||||
|
|
||||||
- [ ] **T020** [P] [US1] [TDD] Implement RelayState enum
|
- [x] **T020** [P] [US1] [TDD] Implement RelayState enum
|
||||||
- Enum: On, Off
|
- Enum: On, Off
|
||||||
- Implement Display, Debug, Clone, Copy, PartialEq, Eq, serde::Serialize/Deserialize
|
- Implement Display, Debug, Clone, Copy, PartialEq, Eq, serde::Serialize/Deserialize
|
||||||
- **File**: src/domain/relay.rs
|
- **File**: src/domain/relay.rs
|
||||||
|
|||||||
Reference in New Issue
Block a user