135 lines
2.9 KiB
Rust
135 lines
2.9 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
/// Judge decision
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct JudgeDecisionRequest {
|
|
pub game_id: String,
|
|
pub winning_cards: Vec<String>,
|
|
}
|
|
|
|
/// Judge round
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct JudgeRound {
|
|
pub cards_to_judge: Vec<Vec<WhiteCardMeta>>,
|
|
}
|
|
|
|
/// Delete game request
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct GameDeleteRequest {
|
|
pub delete_game_id: String,
|
|
}
|
|
|
|
/// Game join request
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct GameJoinRequest {
|
|
pub id: String,
|
|
}
|
|
|
|
/// Player Move Request
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct PlayerMoveRequest {
|
|
pub game_id: String,
|
|
pub card_ids: Vec<String>,
|
|
}
|
|
|
|
/// White Card Meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct WhiteCardMeta {
|
|
pub uuid: String,
|
|
pub text: String,
|
|
}
|
|
|
|
/// Game Player Meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GamePlayerMeta {
|
|
pub name: String,
|
|
pub score: usize,
|
|
}
|
|
|
|
/// Game meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GameStateMeta {
|
|
pub uuid: String,
|
|
pub name: String,
|
|
pub host: String,
|
|
pub players: Vec<GamePlayerMeta>,
|
|
pub czar: String,
|
|
pub black: (String, u8),
|
|
pub white: Vec<WhiteCardMeta>,
|
|
pub packs: Vec<u8>,
|
|
pub white_count: usize,
|
|
pub black_count: usize,
|
|
pub white_discard_count: usize,
|
|
}
|
|
|
|
/// Game browser meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GameBrowserMeta {
|
|
pub uuid: String,
|
|
pub name: String,
|
|
pub host: String,
|
|
pub players: usize,
|
|
pub packs: Vec<u8>,
|
|
}
|
|
|
|
/// Card Pack Meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct CardPackMeta {
|
|
pub name: String,
|
|
pub pack: u8,
|
|
pub num_white: usize,
|
|
pub num_black: usize,
|
|
}
|
|
|
|
/// Card Packs Meta
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct CardPacksMeta {
|
|
pub official_meta: Vec<CardPackMeta>,
|
|
pub unofficial_meta: Vec<CardPackMeta>,
|
|
}
|
|
|
|
/// Games update
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct GamesUpdate {
|
|
pub games: Vec<GameBrowserMeta>,
|
|
}
|
|
|
|
/// Chat update
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct ChatUpdate {
|
|
pub room: String,
|
|
pub users: Vec<String>,
|
|
}
|
|
|
|
/// User login request (to change name)
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct UserLogInRequest {
|
|
pub username: String,
|
|
}
|
|
|
|
/// Response to user name change containing new name
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct UserUpdate {
|
|
pub username: String,
|
|
}
|
|
|
|
/// Chat message
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct ChatMessage {
|
|
pub text: String,
|
|
}
|
|
|
|
/// Server state summary
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
pub struct ServerStateSummary {
|
|
pub online_users: usize,
|
|
pub active_games: usize,
|
|
}
|
|
|
|
/// New game request structure
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct NewGameRequest {
|
|
/// Game name
|
|
pub name: String,
|
|
pub packs: Vec<u8>,
|
|
}
|