use serde::Deserialize;
#[cfg(feature = "serialize")]
use serde::Serialize;
use crate::{
types::{EloChange, RankedAndCasual, TwoUserData},
user::UserProfile,
};
pub mod requests;
#[cfg(test)]
mod tests;
#[cfg_attr(feature = "serialize", derive(Serialize))]
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VersusOutcome {
#[serde(flatten)]
pub wins: TwoUserData<u32>,
pub total: u32,
}
#[cfg_attr(feature = "serialize", derive(Serialize))]
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VersusInfo {
pub players: (UserProfile, UserProfile),
pub results: RankedAndCasual<VersusOutcome>,
pub changes: TwoUserData<EloChange>,
}