mtgapi_client/model/
card.rs1#[derive(Serialize, Deserialize, Debug)]
3#[serde(deny_unknown_fields, untagged)]
4pub(crate) enum CardsDto {
5 Error {
6 status: Option<String>,
7 error: String,
8 },
9 Cards {
10 cards: Vec<CardDetail>,
11 },
12}
13
14#[derive(Serialize, Deserialize, Debug)]
16#[serde(deny_unknown_fields, untagged)]
17pub(crate) enum CardDto {
18 Error {
19 status: Option<String>,
20 error: String,
21 },
22 Card {
23 card: Box<CardDetail>,
24 },
25}
26
27#[derive(Serialize, Deserialize, Debug)]
28#[serde(rename_all = "camelCase", deny_unknown_fields)]
29pub struct CardDetail {
30 pub name: String,
31 #[serde(default)]
32 pub names: Vec<String>,
33 pub mana_cost: Option<String>,
34 pub cmc: f64,
35 #[serde(default)]
36 pub colors: Vec<String>,
37 #[serde(default)]
38 pub color_identity: Vec<String>,
39 #[serde(rename = "type")]
40 pub type_: String,
41 #[serde(default)]
42 pub supertypes: Vec<String>,
43 #[serde(default)]
44 pub types: Vec<String>,
45 #[serde(default)]
46 pub subtypes: Vec<String>,
47 pub rarity: String,
48 pub set: String,
49 pub set_name: Option<String>,
50 #[serde(default)]
51 pub text: String,
52 #[serde(default)]
53 pub flavor: String,
54 pub artist: String,
55 pub number: Option<String>,
56 pub power: Option<String>,
57 pub toughness: Option<String>,
58 pub layout: Option<String>,
59 pub loyalty: Option<u32>,
60 pub multiverseid: Option<u32>,
61 pub image_url: Option<String>,
62 #[serde(default)]
63 pub rulings: Vec<Ruling>,
64 pub watermark: Option<String>,
65 pub release_date: Option<String>,
66 #[serde(default)]
67 pub foreign_names: Vec<ForeignName>,
68 #[serde(default)]
69 pub printings: Vec<String>,
70 pub original_text: Option<String>,
71 pub original_type: Option<String>,
72 #[serde(default)]
73 pub legalities: Vec<Legality>,
74 #[serde(default)]
75 pub variations: Vec<u32>,
76 pub border: Option<String>,
77 #[serde(default)]
78 pub timeshifted: bool,
79 pub hand: Option<i32>,
80 pub life: Option<i32>,
81 #[serde(default)]
82 pub reserved: bool,
83 #[serde(default)]
84 pub starter: bool,
85 pub source: Option<String>,
86 pub id: String,
87}
88
89#[derive(Serialize, Deserialize, Debug)]
90#[serde(deny_unknown_fields)]
91pub struct Ruling {
92 pub date: String,
93 pub text: String,
94}
95
96#[derive(Serialize, Deserialize, Debug)]
97#[serde(deny_unknown_fields)]
98pub struct Legality {
99 pub format: String,
100 pub legality: String,
101}
102
103#[derive(Serialize, Deserialize, Debug)]
104#[serde(rename_all = "camelCase", deny_unknown_fields)]
105pub struct ForeignName {
106 pub image_url: Option<String>,
107 pub name: String,
108 pub multiverseid: Option<u32>,
109 pub language: String,
110}