use std::{collections::HashMap, sync::Arc}; use tokio::sync::{mpsc, Mutex}; pub mod message; use message::Message; mod code_generator; use code_generator::CodeGenerator; #[derive(Default)] pub struct GlobalState { pub code_generator: Arc>, pub rooms: Arc>>>>, } pub struct Channel { pub tx: mpsc::Sender, pub rx: mpsc::Receiver, } pub fn channel_pair() -> (Channel, Channel) { let (atx, brx) = mpsc::channel(32); let (btx, arx) = mpsc::channel(32); (Channel { tx: atx, rx: arx }, Channel { tx: btx, rx: brx }) } #[derive(Default)] pub struct GameController { pub channels: Vec, }