use crate::prelude::*; /// Defines the bounds of the grid for the server. #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] pub struct MaxFieldSize { #[serde(rename = "minX")] pub min_x: u32, #[serde(rename = "maxX")] pub max_x: u32, #[serde(rename = "minY")] pub min_y: u32, #[serde(rename = "maxY")] pub max_y: u32, } /// Coordinates for a wonder event target. #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] pub struct Position { pub x: u32, pub y: u32, } /// WebSocket messages exchanged with the wonder event server. #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] #[serde(tag = "messageType")] pub enum WonderEventMessage { #[serde(rename = "WONDER_REQUEST")] WonderRequest { #[serde(rename = "maxFieldSize")] max_field_size: MaxFieldSize, }, #[serde(rename = "REQUEST_ERROR")] RequestError { error: String }, #[serde(rename = "NO_WONDER")] NoWonder, #[serde(rename = "WONDER_GRANTED")] WonderGranted { position: Position }, }