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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
use serde::{Deserialize, Serialize};
use super::contests::*;
use super::items::*;
use super::pokemon::*;
use super::resource_lists::*;
use super::utility::*;
use crate::{impl_id_and_named, set_endpoint};
#[cfg_attr(debug_assertions, serde(deny_unknown_fields))]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct Berry {
pub id: i16,
pub name: String,
pub growth_time: u8,
pub max_harvest: u8,
pub natural_gift_power: u8,
pub size: u16,
pub smoothness: u8,
pub soil_dryness: u8,
pub firmness: NamedAPIResource<BerryFirmness>,
pub flavors: Vec<BerryFlavorMap>,
pub item: NamedAPIResource<Item>,
pub natural_gift_type: NamedAPIResource<Type>,
}
#[cfg_attr(debug_assertions, serde(deny_unknown_fields))]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct BerryFlavorMap {
pub potency: u8,
pub flavor: NamedAPIResource<BerryFlavor>,
}
#[cfg_attr(debug_assertions, serde(deny_unknown_fields))]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct BerryFirmness {
pub id: i16,
pub name: String,
pub berries: Vec<NamedAPIResource<Berry>>,
pub names: Vec<Name>,
}
#[cfg_attr(debug_assertions, serde(deny_unknown_fields))]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct BerryFlavor {
pub id: i16,
pub name: String,
pub berries: Vec<FlavorBerryMap>,
pub contest_type: NamedAPIResource<ContestType>,
pub names: Vec<Name>,
}
#[cfg_attr(debug_assertions, serde(deny_unknown_fields))]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct FlavorBerryMap {
pub potency: u8,
pub berry: NamedAPIResource<Berry>,
}
set_endpoint!(Berry, NamedAPIResourceList, "berry");
set_endpoint!(BerryFirmness, NamedAPIResourceList, "berry-firmness");
set_endpoint!(BerryFlavor, NamedAPIResourceList, "berry-flavor");
impl_id_and_named!(Berry);
impl_id_and_named!(BerryFirmness);
impl_id_and_named!(BerryFlavor);