Skip to main content

pokebase_core/
pokemon.rs

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}