From 8e6e11e5beb1b514cbe08b74cdb65ff35d5b7b54 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 3 Apr 2026 02:16:08 +0100 Subject: [PATCH] card: slight clean up --- src/card.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/card.rs b/src/card.rs index ce53236..3edfdae 100644 --- a/src/card.rs +++ b/src/card.rs @@ -129,7 +129,7 @@ pub fn make_decks(number_of_decks: usize) -> Vec { let number_of_decks: i64 = number_of_decks.try_into().unwrap(); (-(number_of_decks * 2)..(52 * number_of_decks)) .map(Card::from) - .collect::>() + .collect::>() } mod trait_display { @@ -257,8 +257,7 @@ mod traits_numerics { Self::Joker(n) } else { // Since n >= 0, this should always succeed - let pc = PlayingCard::try_from(n).unwrap(); - Self::PlayingCard(pc) + PlayingCard::try_from(n).map(Self::PlayingCard).unwrap() } } } @@ -296,7 +295,11 @@ mod traits_ord { fn cmp(&self, other: &Self) -> Ordering { match (self, other) { (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::Greater, }