use super::EnumStr;
use enum_map::Enum;
use serde::{Deserialize, Serialize};
#[derive(Enum, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize, Debug)]
pub enum Specialist {
Scientist,
Merchant,
Artist,
Engineer,
}
impl EnumStr for Specialist {
fn as_str(&self) -> &'static str {
match self {
Specialist::Scientist => "Scientist",
Specialist::Merchant => "Merchant",
Specialist::Artist => "Artist",
Specialist::Engineer => "Engineer",
}
}
fn from_str(s: &str) -> Self {
match s {
"Scientist" => Specialist::Scientist,
"Merchant" => Specialist::Merchant,
"Artist" => Specialist::Artist,
"Engineer" => Specialist::Engineer,
_ => panic!("Invalid value for {}: {{}}", s),
}
}
}