use serde::Deserialize;
use crate::{
types::{Elo, PhasePoints, Rank},
user::UserProfile,
};
pub mod elo;
#[cfg(feature = "matches")]
pub mod game;
pub mod phase;
pub mod requests;
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LeaderboardSeasonOutcome {
#[serde(rename = "eloRate")]
elo: Elo,
#[serde(rename = "eloRank")]
rank: Rank,
phase_point: PhasePoints,
}
impl LeaderboardSeasonOutcome {
pub fn elo(&self) -> Elo {
self.elo
}
pub fn rank(&self) -> Rank {
self.rank
}
pub fn phase_points(&self) -> PhasePoints {
self.phase_point
}
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LeaderboardUser {
#[serde(flatten)]
profile: UserProfile,
season_result: LeaderboardSeasonOutcome,
}
impl LeaderboardUser {
pub fn profile(&self) -> &UserProfile {
&self.profile
}
pub fn season_result(&self) -> &LeaderboardSeasonOutcome {
&self.season_result
}
}