feat: plugin-sdk同步Device类型 + example-plugin适配新Message变体
This commit is contained in:
@@ -65,3 +65,27 @@
|
||||
- cargo check --workspace --all-targets 零 warning
|
||||
- cargo test --workspace 全部通过(73 个测试,新增 7 个)
|
||||
- 测试覆盖了所有核心消息类型的序列化和 MockBackend 的基本行为
|
||||
|
||||
## 个人经验 (2026-03-13 SDK 同步)
|
||||
- 完成 plugin-sdk 与主库 Device 类型同步任务
|
||||
- 在 plugin-sdk/src/lib.rs 的 Message enum 中添加了三个新变体:
|
||||
- DeviceCommand(DeviceCommand)
|
||||
- DeviceResponse(DeviceResponse)
|
||||
- DeviceEvent(DeviceEvent)
|
||||
- 在 plugin-sdk 中定义了完整的 Device 相关类型(与主库保持一致):
|
||||
- PixelFormat enum (RGBA8888, RGB888, RGB565)
|
||||
- SensorType enum (Temperature, Humidity, Light, Proximity)
|
||||
- TouchAction enum (Down, Move, Up)
|
||||
- DeviceCapability enum (Display, Touch, Buttons, Audio, Battery, Backlight, Sensors, Framebuffer, GPIO)
|
||||
- DeviceCommand enum (12 个变体,包括 GetDisplayInfo, SetBrightness, WriteFramebuffer 等)
|
||||
- DeviceResponse enum (6 个变体,包括 DisplayInfo, SensorData, BatteryLevel 等)
|
||||
- DeviceEvent enum (6 个变体,包括 TouchEvent, ButtonEvent, BatteryLow 等)
|
||||
- 所有类型都派生了 Debug, Clone, Serialize, Deserialize, PartialEq(与主库一致)
|
||||
- 添加了完整的中文文档注释
|
||||
- 修复了 example-plugin 中的 match 穷尽性问题,添加了三个 Device 消息的处理分支
|
||||
- cargo check --workspace --all-targets 零 warning
|
||||
- cargo test --workspace 全部通过(77 个测试)
|
||||
- 经验总结:
|
||||
- SDK 与主库的类型同步需要保持完全一致的派生宏和字段定义
|
||||
- 添加新的 Message 变体后,需要检查所有现有插件的 match 表达式
|
||||
- Rust 的穷尽性检查是很好的安全网,确保不会遗漏新增的消息类型
|
||||
|
||||
Reference in New Issue
Block a user