gw2lib-model 2.2.2

Models for gw2lib
Documentation
pub mod bank;
pub mod inventory;
pub mod materials;
pub mod raids;
pub mod wallet;

use std::collections::BTreeSet;

use serde::{Deserialize, Serialize};

pub use crate::misc::worlds::WorldId;
use crate::*;

#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(test, serde(deny_unknown_fields))]
#[non_exhaustive]
pub enum Access {
    None,
    PlayForFree,
    GuildWars2,
    HeartOfThorns,
    PathOfFire,
    EndOfDragons,
    SecretsOfTheObscure,
    JanthirWilds,
}

#[derive(Clone, Debug, Serialize, Deserialize)]
#[cfg_attr(test, serde(deny_unknown_fields))]
pub struct Account {
    pub id: String,
    pub age: u64,
    pub name: String,
    pub world: WorldId,
    pub guilds: Vec<String>,
    pub guild_leader: Option<Vec<String>>,
    pub created: TimeStamp,
    pub access: BTreeSet<Access>,
    pub commander: bool,
    pub fractal_level: Option<u8>,
    pub daily_ap: Option<u16>,
    pub monthly_ap: Option<u16>,
    pub wvw_rank: Option<u16>,
    pub last_modified: String,
}

impl Endpoint for Account {
    const AUTHENTICATED: bool = true;
    const LOCALE: bool = false;
    const URL: &'static str = "v2/account";
    const VERSION: &'static str = "2022-07-22T00:00:00.000Z";
}

impl FixedEndpoint for Account {}