pokebase-core 0.1.0

An embedded database of Pokémon TCG
Documentation
use crate::locale;

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Pokemon {
    pub id: Id,
    pub name: locale::Map,
}

impl Pokemon {
    pub fn name(&self) -> &str {
        self.name
            .get("en")
            .expect("en locale must always be available")
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Id(pub(crate) usize);

impl Id {
    pub fn number(self) -> usize {
        self.0
    }
}