use super::rank::Rank;
#[derive(Debug, Clone, Copy, Eq, PartialEq, PartialOrd, Ord)]
pub enum Ranking {
HighCard(Rank), OnePair(Rank), TwoPair(Rank, Rank), ThreeOAK(Rank), Straight(Rank), Flush(Rank), FullHouse(Rank, Rank), FourOAK(Rank), StraightFlush(Rank), MAX, }
impl std::fmt::Display for Ranking {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Ranking::MAX => unreachable!(),
Ranking::FullHouse(r1, r2) => write!(f, "FullHouse {}{}", r1, r2),
Ranking::TwoPair(r1, r2) => write!(f, "TwoPair {}{}", r1, r2),
Ranking::HighCard(r) => write!(f, "HighCard {} ", r),
Ranking::OnePair(r) => write!(f, "OnePair {} ", r),
Ranking::ThreeOAK(r) => write!(f, "ThreeOfAKind {} ", r),
Ranking::Straight(r) => write!(f, "Straight {} ", r),
Ranking::FourOAK(r) => write!(f, "FourOfAKind {} ", r),
Ranking::Flush(r) => write!(f, "Flush {} ", r),
Ranking::StraightFlush(r) => write!(f, "StraightFlush {} ", r),
}
}
}