cards/lib/src/lib.rs

65 lines
1.4 KiB
Rust

use std::net::SocketAddr;
use serde::{Deserialize, Serialize};
/// 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<String>,
}
/// 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 UserLogIn {
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>,
}