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