use serde::Deserialize;
#[derive(Debug, Deserialize)]
pub struct ServerStatus {
pub version: Version,
pub description: Description,
pub players: Players,
#[serde(default)]
pub mods: Vec<Mod>,
#[serde(default)]
pub favicon: Option<String>,
#[serde(flatten)]
pub extra: serde_json::Value,
}
#[derive(Debug, Deserialize)]
pub struct Version {
pub name: String,
pub protocol: i32,
}
#[derive(Debug, Deserialize)]
#[serde(untagged)]
pub enum Description {
Text(String),
Complex(serde_json::Value),
}
#[derive(Debug, Deserialize)]
pub struct Players {
pub max: i32,
pub online: i32,
#[serde(default)]
pub sample: Vec<Player>,
}
#[derive(Debug, Deserialize)]
pub struct Player {
pub name: String,
pub id: String,
}
#[derive(Debug, Deserialize)]
pub struct Mod {
pub id: String,
pub name: String,
}