SQLite config store: full ConfigRepository impl with JSON serialization for mappings, layouts, data source configs. 12 integration tests. HTTP API: Axum REST endpoints for widgets, data sources, layout, presets. 6 integration tests using tower::oneshot. Port traits updated to return Send futures for Axum compatibility.
19 lines
475 B
Rust
19 lines
475 B
Rust
use std::future::Future;
|
|
use crate::entities::WidgetId;
|
|
use crate::value_objects::{Layout, WidgetState};
|
|
|
|
pub trait BroadcastPort {
|
|
type Error;
|
|
|
|
fn push_screen_update(
|
|
&self,
|
|
layout: &Layout,
|
|
widgets: &[(WidgetId, WidgetState)],
|
|
) -> impl Future<Output = Result<(), Self::Error>> + Send;
|
|
|
|
fn push_data_update(
|
|
&self,
|
|
updates: &[(WidgetId, WidgetState)],
|
|
) -> impl Future<Output = Result<(), Self::Error>> + Send;
|
|
}
|