Files
audiopoker/src/core/network.rs
T
2026-07-23 09:09:59 +02:00

32 lines
1.1 KiB
Rust

//! 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<Card> },
CommunityCardsRevealed { cards: Vec<Card> },
PotUpdated { pot: u64 },
PlayerActed { player_id: u32, description: String },
RoundChanged { round: String },
Showdown { winner_id: u32 },
}