use crate::configuration::ClientServerConfiguration; use tokio::sync::{broadcast, mpsc}; mod persistence; mod server; mod ws; pub use server::*; pub use ws::*; pub struct LocalServerContext { pub local_ws: LocalWebSocket, pub local_server: LocalServer, } pub fn build_server(_config: &ClientServerConfiguration) -> LocalServerContext { let (client_ws_sender, server_ws_receiver) = mpsc::unbounded_channel(); let (server_ws_sender, _) = broadcast::channel(16); // server_ws_sender -> client_ws_receiver // server_ws_receiver <- client_ws_sender let local_ws = LocalWebSocket::new(server_ws_receiver, server_ws_sender.clone()); let client_ws_receiver = server_ws_sender; let local_server = LocalServer::new(client_ws_sender, client_ws_receiver); LocalServerContext { local_ws, local_server } }