//! Netzwerkprotokoll für die Multiplayer-Synchronisation (siehe PLAN.md, Phase 2). //! //! Die eigentliche WebSocket-Anbindung (Server + Client) ist noch nicht //! implementiert; dies definiert vorerst nur den Nachrichten-Vertrag, //! damit `core::logic` und die künftige Transportschicht entkoppelt bleiben. use serde::{Deserialize, Serialize}; use crate::core::logic::card::Card; /// Nachrichten, die ein Client an den Server schickt. #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ClientMessage { JoinTable { player_name: String }, Fold, Check, Call { amount: u64 }, Raise { amount: u64 }, } /// Nachrichten, die der Server an alle Clients eines Tisches broadcastet. #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ServerMessage { PlayerJoined { player_id: u32, name: String }, HoleCardsDealt { player_id: u32, cards: Vec }, CommunityCardsRevealed { cards: Vec }, PotUpdated { pot: u64 }, PlayerActed { player_id: u32, description: String }, RoundChanged { round: String }, Showdown { winner_id: u32 }, }