planning done on how the event system works

This commit is contained in:
2025-11-15 16:41:11 +01:00
parent e599722e45
commit a098c8051a
2 changed files with 10 additions and 14 deletions

View File

@@ -21,20 +21,14 @@ pub enum ClientEvent {
RequestLegalMoves { fen: String },
}
#[derive(Debug)]
pub enum ServerEvent {
PlayerJoined(Uuid, String),
PlayerLeft(Uuid),
PlayerJoinedQueue(Uuid),
PlayerJoinedMatch(Uuid, Uuid), // player_id, match_id
PlayerMove(Uuid, Step),
PlayerResigned(Uuid),
MatchCreated(Uuid, Uuid, Uuid), // match_id, white_id, black_id
#[derive(Serialize, Deserialize, Debug)]
pub struct EventResponse {
response: Result<bool, String>,
}
pub struct EventSystem {
sender: mpsc::UnboundedSender<(Uuid, ClientEvent)>,
receiver: Arc<Mutex<mpsc::UnboundedReceiver<(Uuid, ClientEvent)>>>,
sender: mpsc::UnboundedSender<(Uuid, EventResponse)>,
receiver: Arc<Mutex<mpsc::UnboundedReceiver<(Uuid, EventResponse)>>>,
}
impl Clone for EventSystem {
@@ -58,13 +52,13 @@ impl EventSystem {
pub async fn send_event(
&self,
player_id: Uuid,
event: ClientEvent,
event: EventResponse,
) -> Result<(), Box<dyn std::error::Error>> {
self.sender.send((player_id, event))?;
Ok(())
}
pub async fn next_event(&self) -> Option<(Uuid, ClientEvent)> {
pub async fn next_event(&self) -> Option<(Uuid, EventResponse)> {
let mut receiver = self.receiver.lock().await;
receiver.recv().await
}
@@ -76,6 +70,7 @@ impl Default for EventSystem {
}
}
/*
#[cfg(test)]
mod tests {
use super::*;
@@ -123,4 +118,4 @@ mod tests {
"Cloned event system should receive events"
);
}
}
}*/

View File

@@ -1,6 +1,7 @@
mod connection;
mod events;
mod matchmaking;
mod messages;
use tokio::net::TcpListener;
#[tokio::main]