1
0
Fork 0

Casting made easy

This commit is contained in:
Florent DENEF 2022-12-02 15:27:07 +01:00
parent d35a92ed23
commit fc49a2add1
1 changed files with 21 additions and 6 deletions

View File

@ -31,12 +31,27 @@ impl Into<i32> for Play {
}
}
pub fn translate(letter: char) -> Option<Play> {
match letter {
'A' => Some(Play::Rock),
'B' => Some(Play::Paper),
'C' => Some(Play::Scissors),
_ => None,
impl From<char> for Play {
fn from(letter: char) -> Self {
match letter {
'A' => Play::Rock,
'B' => Play::Paper,
'C' => Play::Scissors,
'X' => Play::Rock,
'Y' => Play::Paper,
'Z' => Play::Scissors,
_ => panic!("Only A, B, C, X, Y or Z letters are available."),
}
}
}
impl Into<i32> for ResultPlay {
fn into(self) -> i32 {
match self {
ResultPlay::Win => 6,
ResultPlay::Draw => 3,
ResultPlay::Loss => 0,
}
}
}