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 AccountDetails {
    /// Username.
    #[serde(rename = "username")]
    pub username: String,
    /// Member status.
    #[serde(rename = "member")]
    pub member: bool,
    /// 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>,
    /// 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 AccountDetails {
    pub fn new(
        username: String,
        member: bool,
        status: models::AccountStatus,
        skins: Vec<String>,
        achievements_points: i32,
        banned: bool,
    ) -> AccountDetails {
        AccountDetails {
            username,
            member,
            status,
            badges: None,
            skins,
            achievements_points,
            banned,
            ban_reason: None,
        }
    }
}