hexland-server/src/lib.rs
2022-10-12 12:48:23 -05:00

31 lines
714 B
Rust

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<Mutex<CodeGenerator>>,
pub rooms: Arc<Mutex<HashMap<String, Arc<Mutex<GameController>>>>>,
}
pub struct Channel {
pub tx: mpsc::Sender<Message>,
pub rx: mpsc::Receiver<Message>,
}
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<Channel>,
}