rs_pixel/types/
lobby_type.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug)]
4pub struct LobbyType(&'static str);
5
6impl From<String> for LobbyType {
7    fn from(v: String) -> Self {
8        match v.as_str() {
9            "MAIN" => LobbyType::MAIN,
10            "TOURNAMENT" => LobbyType::TOURNAMENT,
11            _ => LobbyType::UNKNOWN,
12        }
13    }
14}
15
16impl LobbyType {
17    pub fn name(&self) -> String {
18        self.0.to_string()
19    }
20
21    pub const MAIN: Self = Self("Main Lobby");
22    pub const TOURNAMENT: Self = Self("Tournament Hall");
23    pub const UNKNOWN: Self = Self("Unknown");
24}