pokeapi_client/
pokemon.rs

1use 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    //pub abilities: Vec<Ability>,
8    #[serde(rename = "base_experience")]
9    pub base_experience: Option<i64>,
10    //pub forms: Vec<Form>,
11    //#[serde(rename = "game_indices")]
12    //pub game_indices: Vec<Index>,
13    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    //#[serde(rename = "past_types")]
25    //pub past_types: Vec<Value>,
26    //pub species: Species,
27    pub sprites: Sprites,
28    //pub stats: Vec<Stat>,
29    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    //pub other: Other,
53    //pub versions: Versions,
54}
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}