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
use initiative_macros::WordList;
use serde::{Deserialize, Serialize};

#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize, WordList)]
#[serde(into = "&'static str", try_from = "&str")]
pub enum LandmarkType {
    Farm,
    Fountain,
    Garden,
    Harbor,
    Mine,
    #[alias = "statue"]
    Monument,
    Ruin,
    Street,
    Wall,
}

impl LandmarkType {
    pub const fn get_emoji(&self) -> Option<&'static str> {
        match self {
            Self::Farm | Self::Garden => Some("🌱"),
            Self::Fountain => Some("⛲"),
            Self::Harbor => Some("⛵"),
            Self::Mine => Some("⚒"),
            Self::Ruin => Some("🏚"),
            Self::Street => Some("🏘"),
            Self::Wall => Some("🧱"),
            Self::Monument => Some("🗽"),
        }
    }
}