origin-sdk 0.2.0

A Rust implementation of the Origin SDK, which is used in games to communicate with the EA Desktop client.
Documentation
use serde::{Deserialize, Serialize};

use crate::protocol::user::User;

#[derive(Debug, Serialize, Deserialize)]
pub struct GetProfile {
    #[serde(rename = "@index")]
    pub index: i32,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct GetProfileResponse {
    #[serde(rename = "@UserIndex")]
    pub user_index: i32,
    #[serde(rename = "@UserId")]
    pub user_id: u64,
    #[serde(rename = "@PersonaId")]
    pub persona_id: u64,
    #[serde(rename = "@Persona")]
    pub persona: String,
    #[serde(rename = "@AvatarId")]
    pub avatar_id: String,
    #[serde(rename = "@Country")]
    pub country: String,
    #[serde(rename = "@IsUnderAge")]
    pub is_under_age: bool,
    #[serde(rename = "@IsSubscriber")]
    pub is_subscriber: bool,
    #[serde(rename = "@IsTrialSubscriber")]
    pub is_trial_subscriber: bool,
    #[serde(rename = "@SubscriberLevel")]
    pub subscriber_level: i32,
    #[serde(rename = "@GeoCountry")]
    pub geo_country: String,
    #[serde(rename = "@CommerceCountry")]
    pub commerce_country: String,
    #[serde(rename = "@CommerceCurrency")]
    pub commerce_currency: String,
    #[serde(rename = "@IsSteamSubscriber")]
    pub is_steam_subscriber: bool,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct GetUserProfileByEmailorEaid {
    #[serde(rename = "@KeyWord")]
    pub key_word: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct GetUserProfileByEmailorEaidResponse {
    #[serde(rename = "@Return")]
    pub r#return: String,
    #[serde(rename = "User", default)]
    pub user: Vec<User>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct ProfileEvent {
    #[serde(rename = "@Changed")]
    pub changed: ProfileStateChange,
    #[serde(rename = "@UserId")]
    pub user_id: u64,
}

#[derive(Debug, Serialize, Deserialize)]
pub enum ProfileStateChange {
    #[serde(rename = "UNKNOWN")]
    Unknown,
    #[serde(rename = "EAID")]
    Eaid,
    #[serde(rename = "AVATAR")]
    Avatar,
    #[serde(rename = "SUBSCRIPTION")]
    Subscription,
}