Server: domain (entities, value objects, ports), protocol (postcard wire types), application (config service, data projection), adapters (config-memory, tcp-server), bootstrap (composition root with fake data). Client: client-domain (layout engine, render tree, HAL ports), client-application (message handling, repaint commands), adapters (tcp-client, display-terminal), client-desktop (end-to-end working). ESP32: client-esp32 firmware with ILI9341 display over SPI, WiFi networking. Display test verified on hardware — landscape orientation, text rendering works. 60 workspace tests, all passing.
20 lines
578 B
Rust
20 lines
578 B
Rust
#![allow(async_fn_in_trait)]
|
|
|
|
pub mod entities;
|
|
pub mod value_objects;
|
|
pub mod events;
|
|
pub mod ports;
|
|
|
|
pub use entities::{
|
|
WidgetConfig, WidgetId,
|
|
DataSource, DataSourceId, DataSourceType, DataSourceConfig, DataSourceValidationError,
|
|
LayoutPreset, LayoutPresetId,
|
|
};
|
|
pub use value_objects::{
|
|
Value, KeyMapping,
|
|
WidgetState, WidgetError, DisplayHint,
|
|
Layout, LayoutNode, LayoutChild, ContainerNode, Direction, Sizing, LayoutValidationError,
|
|
};
|
|
pub use events::DomainEvent;
|
|
pub use ports::{ConfigRepository, DataSourcePort, BroadcastPort, EventPublisher};
|