pokeapi_client/
pokemon.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct PokemonResponse {
7 #[serde(rename = "base_experience")]
9 pub base_experience: Option<i64>,
10 pub height: i64,
14 #[serde(rename = "held_items")]
15 pub held_items: Vec<Value>,
16 pub id: u16,
17 #[serde(rename = "is_default")]
18 pub is_default: bool,
19 #[serde(rename = "location_area_encounters")]
20 pub location_area_encounters: String,
21 pub moves: Vec<Move>,
22 pub name: String,
23 pub order: i64,
24 pub sprites: Sprites,
28 pub types: Vec<Type>,
30 pub weight: i64,
31}
32
33#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct Sprites {
36 #[serde(rename = "back_default")]
37 pub back_default: Option<String>,
38 #[serde(rename = "back_female")]
39 pub back_female: Option<String>,
40 #[serde(rename = "back_shiny")]
41 pub back_shiny: Option<String>,
42 #[serde(rename = "back_shiny_female")]
43 pub back_shiny_female: Option<String>,
44 #[serde(rename = "front_default")]
45 pub front_default: Option<String>,
46 #[serde(rename = "front_female")]
47 pub front_female: Option<String>,
48 #[serde(rename = "front_shiny")]
49 pub front_shiny: Option<String>,
50 #[serde(rename = "front_shiny_female")]
51 pub front_shiny_female: Option<String>,
52 }
55
56#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct Move {
59 #[serde(rename = "move")]
60 pub move_field: super::Resource,
61 #[serde(rename = "version_group_details")]
62 pub version_group_details: Vec<VersionGroupDetail>,
63}
64
65#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
66#[serde(rename_all = "camelCase")]
67pub struct VersionGroupDetail {
68 #[serde(rename = "level_learned_at")]
69 pub level_learned_at: i64,
70 #[serde(rename = "move_learn_method")]
71 pub move_learn_method: super::Resource,
72 #[serde(rename = "version_group")]
73 pub version_group: super::Resource,
74}
75
76#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
77#[serde(rename_all = "camelCase")]
78pub struct Stat {
79 #[serde(rename = "base_stat")]
80 pub base_stat: i64,
81 pub effort: i64,
82 pub stat: super::Resource,
83}
84
85#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
86#[serde(rename_all = "camelCase")]
87pub struct Type {
88 pub slot: i64,
89 #[serde(rename = "type")]
90 pub type_field: super::Resource,
91}