warframe 9.0.1

An async crate to wrap Warframe's Worldstate API.
Documentation
use chrono::NaiveDate;
use serde::Deserialize;

use super::{
    Introduced,
    LevelStat,
    Polarity,
    Rarity,
};

#[allow(clippy::struct_excessive_bools)]
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Mod {
    pub base_drain: i64,

    pub compat_name: String,

    pub fusion_limit: i64,

    pub image_name: String,

    pub introduced: Introduced,

    pub is_exilus: bool,

    pub is_prime: bool,

    pub is_utility: bool,

    pub level_stats: Vec<LevelStat>,

    pub name: String,

    pub polarity: Polarity,

    pub rarity: Rarity,

    pub release_date: NaiveDate,

    pub tradable: bool,

    pub transmutable: bool,

    #[serde(rename = "type")]
    pub mod_type: ModType,

    pub unique_name: String,

    pub wikia_thumbnail: String,

    pub wikia_url: String,
}

#[derive(Clone, Debug, Deserialize, PartialEq, Eq)]
pub enum ModType {
    #[serde(rename = "Railjack Mod")]
    Railjack,
    #[serde(rename = "Necramech Mod")]
    Necramech,
    #[serde(rename = "Warframe Mod")]
    Warframe,
    #[serde(rename = "Secondary Mod")]
    Secondary,
    #[serde(rename = "Melee Mod")]
    Melee,
    #[serde(rename = "Companion Mod")]
    Companion,
    #[serde(rename = "Primary Mod")]
    Primary,
    #[serde(rename = "K-Drive Mod")]
    KDrive,
    #[serde(rename = "Riven Mod")]
    Riven,
    #[serde(rename = "Archwing Mod")]
    Archwing,
    #[serde(rename = "Arch-Melee Mod")]
    ArchMelee,
    #[serde(rename = "Arch-Gun Mod")]
    ArchGun,
    #[serde(rename = "Shotgun Mod")]
    Shotgun,
    #[serde(rename = "Creature Mod")]
    Creature,
    #[serde(rename = "Stance Mod")]
    Stance,
    #[serde(rename = "Parazon Mod")]
    Parazon,
    #[serde(rename = "Transmutation Mod")]
    Transmutation,
    #[serde(rename = "Peculiar Mod")]
    Peculiar,
    #[serde(rename = "Plexus Mod")]
    Plexus,
    #[serde(rename = "Posture Mod")]
    Posture,
}