use crate::State; use serde::Deserialize; use std::{net::SocketAddr, sync::Arc}; pub mod server; #[derive(Deserialize)] pub struct Config { bind: SocketAddr, } async fn stats_loop(state: Arc) { let mut ticks = state.tick.subscribe(); while let Ok(end) = ticks.recv().await { if let Some(winner) = end { if let Some(winner) = winner { if let Some(winner) = state.players.write().await.get(&winner).cloned() { let mut h = state.win_history.write().await; h.push_front(winner); while h.len() > 64 { h.pop_back(); } } } } } }