feat: Implement wonder event request (#40)

This commit is contained in:
demenik
2025-12-09 15:21:38 +01:00
parent 14cd5419ac
commit 576d9fc311
8 changed files with 657 additions and 3 deletions

View File

@@ -0,0 +1,36 @@
use crate::prelude::*;
#[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,
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct Position {
pub x: u32,
pub y: u32,
}
#[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 },
}