minehut 2.0.0

Simple, easy to use Rust wrapper for the Minehut API
Documentation
//! This module stores all data structs used to receive data from the
//! Minehut API.

mod server_info;
mod product_info;

pub use self::{
    server_info::{
        Server,
        ServerData,
        ServerIcon,
        OwnedServer
    },
    product_info::Product
};

pub(crate) use self::server_info::{
    ServerResponse,
    ServerListResponse,
    OwnedServerRes
};

#[derive(Debug, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
/// Struct represents response from the API for player distribution. It
/// contains both Java and Bedrock stats.
pub struct PlayerDistribution {
    /// Total number of Bedrock edition players.
    pub bedrock_total: usize,
    /// Total number of Java edition players.
    pub java_total: usize,
    /// Total number of Bedrock players in the lobby.
    pub bedrock_lobby: usize,
    /// Total number of Bedrock servers.
    pub bedrock_player_server: usize,
    /// Total number of Java players in the lobby.
    pub java_lobby: usize,
    /// Total number of Java servers.
    pub java_player_server: usize
} 

#[derive(Debug, serde::Deserialize)]
/// Struct represents response from Minehut API for simple stats. It
/// contains info such as player and server count.
pub struct SimpleStats {
    /// Total number of players.
    pub player_count: usize,
    /// Total number of servers.
    pub server_count: usize,
    /// Maximum number of servers.
    pub server_max: usize,
    /// RAM usage.
    pub ram_count: usize,
    /// Maximum RAM usage.
    pub ram_max: usize
}

#[derive(Debug, serde::Deserialize)]
/// Struct represents response from Minehut API for home page stats. It
/// contains user and server count.
pub struct HomePageStats {
    /// Total number of servers.
    pub server_count: usize,
    /// Total number of users.
    pub user_count: usize
}