Worked on parsing

This commit is contained in:
Lukas Wölfer
2025-10-04 19:20:05 +02:00
parent c8a56c08d2
commit c54d950e30
4 changed files with 45 additions and 39 deletions

View File

@@ -45,14 +45,14 @@ impl TryFrom<&str> for DanceRole {
}
}
#[derive(serde::Deserialize, Debug, PartialEq, Eq, PartialOrd, Ord)]
#[derive(serde::Deserialize, Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
pub enum DanceRank {
Newcomer,
Novice,
Intermediate,
#[serde(rename = "Advance")]
Advanced,
#[serde(rename = "All Star")]
#[serde(rename = "All Star", alias = "All-Stars")]
AllStars,
Champions,
}
@@ -70,33 +70,6 @@ impl DanceRank {
}
}
#[derive(Debug)]
pub struct ParseDanceRankError;
impl fmt::Display for ParseDanceRankError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "failed to parse DanceRank")
}
}
impl std::error::Error for ParseDanceRankError {}
impl std::str::FromStr for DanceRank {
type Err = ParseDanceRankError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"Newcomer" => Ok(Self::Newcomer),
"Novice" => Ok(Self::Novice),
"Intermediate" => Ok(Self::Intermediate),
"Advanced" => Ok(Self::Advanced),
"All-Stars" => Ok(Self::AllStars),
"Champions" => Ok(Self::Champions),
_ => Err(ParseDanceRankError),
}
}
}
#[derive(Debug)]
pub struct CompState {
pub rank: DanceRank,