card: slight clean up

This commit is contained in:
2026-04-03 02:16:08 +01:00
committed by oreodave
parent e035f53234
commit 8e6e11e5be

View File

@@ -129,7 +129,7 @@ pub fn make_decks(number_of_decks: usize) -> Vec<Card> {
let number_of_decks: i64 = number_of_decks.try_into().unwrap(); let number_of_decks: i64 = number_of_decks.try_into().unwrap();
(-(number_of_decks * 2)..(52 * number_of_decks)) (-(number_of_decks * 2)..(52 * number_of_decks))
.map(Card::from) .map(Card::from)
.collect::<Vec<Card>>() .collect::<Vec<_>>()
} }
mod trait_display { mod trait_display {
@@ -257,8 +257,7 @@ mod traits_numerics {
Self::Joker(n) Self::Joker(n)
} else { } else {
// Since n >= 0, this should always succeed // Since n >= 0, this should always succeed
let pc = PlayingCard::try_from(n).unwrap(); PlayingCard::try_from(n).map(Self::PlayingCard).unwrap()
Self::PlayingCard(pc)
} }
} }
} }
@@ -296,7 +295,11 @@ mod traits_ord {
fn cmp(&self, other: &Self) -> Ordering { fn cmp(&self, other: &Self) -> Ordering {
match (self, other) { match (self, other) {
(Self::PlayingCard(c1), Self::PlayingCard(c2)) => c1.cmp(c2), (Self::PlayingCard(c1), Self::PlayingCard(c2)) => c1.cmp(c2),
(Self::Joker(_), Self::Joker(_)) => Ordering::Equal, // Jokers should order themselves based on what deck they belong
// to.
(Self::Joker(x), Self::Joker(y)) => x.cmp(y),
// Jokers are the lowest possible card so any Playing Cards are
// better than them.
(Self::Joker(_), _) => Ordering::Less, (Self::Joker(_), _) => Ordering::Less,
(_, Self::Joker(_)) => Ordering::Greater, (_, Self::Joker(_)) => Ordering::Greater,
} }