use chrono::{DateTime, Utc}; use oauth2::AccessToken; use serde::{Deserialize, Serialize}; use crate::auth::AuthError; const XBOX_LIVE_AUTH: &str = "https://user.auth.xboxlive.com/user/authenticate"; #[derive(Debug, Serialize)] #[serde(rename_all = "PascalCase")] struct XboxLiveAuthRequestProperties<'a> { auth_method: &'a str, site_name: &'a str, rps_ticket: &'a str } #[derive(Debug, Serialize)] #[serde(rename_all = "PascalCase")] struct XboxLiveAuthRequest<'a> { properties: XboxLiveAuthRequestProperties<'a>, relying_party: &'a str, token_type: &'a str } #[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] struct XboxLiveAuthResponse { token: String, not_after: DateTime } pub fn xbox_live_login(client: &reqwest::Client, access_token: &AccessToken) -> Result<(), AuthError> { }