artifacts-rs 1.5.1

Rust client for Artifacts
Documentation
use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct MyAccountDetails {
    /// Username.
    #[serde(rename = "username")]
    pub username: String,
    /// Email.
    #[serde(rename = "email")]
    pub email: String,
    /// Member status.
    #[serde(rename = "member")]
    pub member: bool,
    /// Member expiration date.
    #[serde(rename = "member_expiration", skip_serializing_if = "Option::is_none")]
    pub member_expiration: Option<String>,
    /// Account status.
    #[serde(rename = "status")]
    pub status: models::AccountStatus,
    /// Account badges.
    #[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
    pub badges: Option<Vec<String>>,
    /// Skins owned.
    #[serde(rename = "skins")]
    pub skins: Vec<String>,
    /// Gems.
    #[serde(rename = "gems")]
    pub gems: i32,
    /// Event tokens for spawning events.
    #[serde(rename = "event_token")]
    pub event_token: i32,
    /// Achievement points.
    #[serde(rename = "achievements_points")]
    pub achievements_points: i32,
    /// Banned.
    #[serde(rename = "banned")]
    pub banned: bool,
    /// Ban reason.
    #[serde(rename = "ban_reason", skip_serializing_if = "Option::is_none")]
    pub ban_reason: Option<String>,
}

impl MyAccountDetails {
    pub fn new(
        username: String,
        email: String,
        member: bool,
        status: models::AccountStatus,
        skins: Vec<String>,
        gems: i32,
        event_token: i32,
        achievements_points: i32,
        banned: bool,
    ) -> MyAccountDetails {
        MyAccountDetails {
            username,
            email,
            member,
            member_expiration: None,
            status,
            badges: None,
            skins,
            gems,
            event_token,
            achievements_points,
            banned,
            ban_reason: None,
        }
    }
}