hypixel-sdk 0.2.1

Async client for the Hypixel Public API with typed models and SkyBlock helpers
Documentation
use serde::{Deserialize, Serialize};

use super::common::JsonObject;

/// A player's current online session, as returned by `status`.
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Session {
    #[serde(default)]
    pub online: bool,
    #[serde(rename = "gameType", default)]
    pub game_type: Option<String>,
    #[serde(default)]
    pub mode: Option<String>,
    #[serde(default)]
    pub map: Option<String>,
    #[serde(flatten)]
    pub extra: JsonObject,
}

#[derive(Debug, Clone, Deserialize)]
pub(crate) struct StatusResponse {
    pub session: Session,
}

/// A recently played game, as returned by `recentgames`.
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct RecentGame {
    #[serde(default)]
    pub date: i64,
    #[serde(rename = "gameType", default)]
    pub game_type: Option<String>,
    #[serde(default)]
    pub mode: Option<String>,
    #[serde(default)]
    pub map: Option<String>,
    #[serde(default)]
    pub ended: Option<i64>,
    #[serde(flatten)]
    pub extra: JsonObject,
}

#[derive(Debug, Clone, Deserialize)]
pub(crate) struct RecentGamesResponse {
    #[serde(default)]
    pub games: Vec<RecentGame>,
}