40 lines
1.0 KiB
Rust
40 lines
1.0 KiB
Rust
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 },
|
|
}
|
|
|