use serde::{Deserialize, Serialize};
use std::str::FromStr;
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "lowercase")]
#[derive(PartialEq, Eq, Hash)]
pub enum Shard {
EU,
AP,
NA,
KR,
ESPORTS,
PBE,
}
impl ToString for Shard {
fn to_string(&self) -> String {
match self {
Shard::EU => "eu",
Shard::AP => "ap",
Shard::NA => "na",
Shard::KR => "kr",
Shard::ESPORTS => "esports",
Shard::PBE => "pbe",
}
.to_string()
}
}
impl FromStr for Shard {
type Err = ();
fn from_str(s: &str) -> Result<Shard, ()> {
match s.to_lowercase().as_str() {
"eu" => Ok(Shard::EU),
"ap" => Ok(Shard::AP),
"na" => Ok(Shard::NA),
"kr" => Ok(Shard::KR),
"esports" => Ok(Shard::ESPORTS),
"pbe" => Ok(Shard::PBE),
_ => Err(()),
}
}
}