1use crate::locale;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct Pokemon {
7 pub id: Id,
8 pub name: locale::Map,
9}
10
11impl Pokemon {
12 pub fn name(&self) -> &str {
13 self.name
14 .get("en")
15 .expect("en locale must always be available")
16 }
17}
18
19#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
20#[serde(transparent)]
21pub struct Id(pub(crate) usize);
22
23impl Id {
24 pub fn number(self) -> usize {
25 self.0
26 }
27}