From 591944b88e80b5f04a3a99ec39da8c673a9ebb19 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Wed, 1 Apr 2026 05:45:54 +0100 Subject: [PATCH] classifier:classify: use a stack allocated array for new_cards --- src/classifier.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/classifier.rs b/src/classifier.rs index a608871..eeca778 100644 --- a/src/classifier.rs +++ b/src/classifier.rs @@ -21,17 +21,17 @@ pub fn classify(cards: &[Card]) -> Option { return None; } - let mut new_cards: Vec = Vec::new(); - new_cards.extend_from_slice(cards); - new_cards.sort(); - match new_cards.len() { - 1 => Some(Hand::Single(new_cards[0])), - 2 => is_pair(num_jokers, new_cards[0], new_cards[1]) - .then_some(Hand::Pair(new_cards[0], new_cards[1])), - 3 => is_triple(num_jokers, new_cards[0], new_cards[1], new_cards[2]) - .then_some(Hand::Triple(new_cards[0], new_cards[1], new_cards[2])), - 5 => classify_poker_hand(num_jokers, &new_cards) - .map(|ptype| Hand::make_poker_hand(ptype, cards)), + let mut cards_cpy = [Card::from(0); 5]; + cards_cpy.copy_from_slice(cards); + cards_cpy.sort(); + match cards_cpy.len() { + 1 => Some(Hand::Single(cards_cpy[0])), + 2 => is_pair(num_jokers, cards_cpy[0], cards_cpy[1]) + .then_some(Hand::Pair(cards_cpy[0], cards_cpy[1])), + 3 => is_triple(num_jokers, cards_cpy[0], cards_cpy[1], cards_cpy[2]) + .then_some(Hand::Triple(cards_cpy[0], cards_cpy[1], cards_cpy[2])), + 5 => try_poker_hand(num_jokers, &cards_cpy) + .map(|ptype| Hand::make_poker_hand(ptype, &cards_cpy)), _ => None, } }