1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use chrono::NaiveDate;
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields, untagged)]
pub(crate) enum SetsDto {
Error {
status: Option<String>,
error: String,
},
Sets {
sets: Vec<SetDetail>,
},
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields, untagged)]
pub(crate) enum SetDto {
Error {
status: Option<String>,
error: String,
},
Set {
set: SetDetail,
},
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct SetDetail {
pub code: String,
pub name: String,
#[serde(rename = "types")]
pub type_: String,
pub block: Option<String>,
pub gatherer_code: Option<String>,
pub old_code: Option<String>,
pub magic_cards_info_code: Option<String>,
pub release_date: NaiveDate,
pub border: String,
pub expansion: Option<String>,
pub online_only: Option<bool>,
#[serde(default)]
pub booster: Vec<Booster>,
#[serde(rename = "mkm_name")]
pub mkm_name: Option<String>,
#[serde(rename = "mkm_id")]
pub mkm_id: Option<u32>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum Booster {
Multiple(Vec<String>),
Single(String),
}