1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Warframe {
16 #[serde(rename = "name")]
17 pub name: String,
18 #[serde(rename = "uniqueName", skip_serializing_if = "Option::is_none")]
19 pub unique_name: Option<String>,
20 #[serde(rename = "description")]
21 pub description: String,
22 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
23 pub r#type: Option<String>,
24 #[serde(rename = "tradable", skip_serializing_if = "Option::is_none")]
25 pub tradable: Option<bool>,
26 #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
27 pub category: Option<String>,
28 #[serde(rename = "productCategory", skip_serializing_if = "Option::is_none")]
29 pub product_category: Option<String>,
30 #[serde(rename = "patchlogs", skip_serializing_if = "Option::is_none")]
31 pub patchlogs: Option<Vec<models::Patchlog>>,
32 #[serde(rename = "components", skip_serializing_if = "Option::is_none")]
33 pub components: Option<Vec<models::ShallowItem>>,
34 #[serde(rename = "introduced", skip_serializing_if = "Option::is_none")]
35 pub introduced: Option<Box<models::Introduced>>,
36 #[serde(rename = "estimatedVaultDate", skip_serializing_if = "Option::is_none")]
37 pub estimated_vault_date: Option<String>,
38 #[serde(rename = "shield")]
39 pub shield: f64,
40 #[serde(rename = "polarities")]
41 pub polarities: Vec<String>,
42 #[serde(rename = "prime_power", skip_serializing_if = "Option::is_none")]
43 pub prime_power: Option<String>,
44 #[serde(rename = "prime_mr", skip_serializing_if = "Option::is_none")]
45 pub prime_mr: Option<String>,
46 #[serde(rename = "color")]
47 pub color: f64,
48 #[serde(rename = "prime_polarities", skip_serializing_if = "Option::is_none")]
49 pub prime_polarities: Option<Vec<String>>,
50 #[serde(rename = "conclave")]
51 pub conclave: bool,
52 #[serde(rename = "prime_armor", skip_serializing_if = "Option::is_none")]
53 pub prime_armor: Option<f64>,
54 #[serde(rename = "speed")]
55 pub speed: String,
56 #[serde(rename = "aura")]
57 pub aura: String,
58 #[serde(rename = "prime_url", skip_serializing_if = "Option::is_none")]
59 pub prime_url: Option<String>,
60 #[serde(rename = "prime_health", skip_serializing_if = "Option::is_none")]
61 pub prime_health: Option<f64>,
62 #[serde(rename = "power")]
63 pub power: f64,
64 #[serde(rename = "prime_aura", skip_serializing_if = "Option::is_none")]
65 pub prime_aura: Option<String>,
66 #[serde(rename = "info")]
67 pub info: String,
68 #[serde(rename = "thumbnail")]
69 pub thumbnail: String,
70 #[serde(rename = "mr")]
71 pub mr: String,
72 #[serde(rename = "prime_shield", skip_serializing_if = "Option::is_none")]
73 pub prime_shield: Option<f64>,
74 #[serde(rename = "health")]
75 pub health: f64,
76 #[serde(rename = "prime_speed", skip_serializing_if = "Option::is_none")]
77 pub prime_speed: Option<String>,
78 #[serde(rename = "url")]
79 pub url: String,
80 #[serde(rename = "regex")]
81 pub regex: String,
82 #[serde(rename = "armor")]
83 pub armor: f64,
84 #[serde(rename = "location")]
85 pub location: String,
86 #[serde(rename = "prime_conclave", skip_serializing_if = "Option::is_none")]
87 pub prime_conclave: Option<String>,
88}
89
90impl Warframe {
91 pub fn new(name: String, description: String, shield: f64, polarities: Vec<String>, color: f64, conclave: bool, speed: String, aura: String, power: f64, info: String, thumbnail: String, mr: String, health: f64, url: String, regex: String, armor: f64, location: String) -> Warframe {
92 Warframe {
93 name,
94 unique_name: None,
95 description,
96 r#type: None,
97 tradable: None,
98 category: None,
99 product_category: None,
100 patchlogs: None,
101 components: None,
102 introduced: None,
103 estimated_vault_date: None,
104 shield,
105 polarities,
106 prime_power: None,
107 prime_mr: None,
108 color,
109 prime_polarities: None,
110 conclave,
111 prime_armor: None,
112 speed,
113 aura,
114 prime_url: None,
115 prime_health: None,
116 power,
117 prime_aura: None,
118 info,
119 thumbnail,
120 mr,
121 prime_shield: None,
122 health,
123 prime_speed: None,
124 url,
125 regex,
126 armor,
127 location,
128 prime_conclave: None,
129 }
130 }
131}
132