From b66c1c77061e4397f188e8bbd114d4e972c7e747 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Tue, 31 Mar 2026 23:19:14 +0100 Subject: [PATCH] card: add rank and suit destructors They're Option since card may be a joker, but this is supremely helpful. --- src/card.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/card.rs b/src/card.rs index 7321b04..2ed15c5 100644 --- a/src/card.rs +++ b/src/card.rs @@ -37,6 +37,20 @@ impl Card { pub fn is_joker(&self) -> bool { matches!(self, Self::Joker(_)) } + + pub fn rank(&self) -> Option { + match self { + Self::Joker(_) => None, + Self::PlayingCard { rank: rank, .. } => Some(*rank), + } + } + + pub fn suit(&self) -> Option { + match self { + Self::Joker(_) => None, + Self::PlayingCard { suit: suit, .. } => Some(*suit), + } + } } pub fn make_decks(number_of_decks: usize) -> Vec {