use std::collections::HashMap; use std::error::Error; use std::net::SocketAddr; use std::sync::Arc; use serde::Serialize; use tokio::sync::mpsc::Sender; use tokio::sync::RwLock; use tungstenite::Message; use protocol::State; #[derive(Clone)] pub struct ClientManager { pub handlers: Arc>>, pub usernames: Arc>> } #[derive(Clone)] pub struct ClientHandler { pub tx: Sender } pub enum ClientHandlerMessage { Tick, ChatMessage { from: String, message: String } }