From 2eaa99e82dc40ab59ca0033717667fe7f66452d3 Mon Sep 17 00:00:00 2001 From: funman300 Date: Mon, 8 Jun 2026 10:55:05 -0700 Subject: [PATCH] feat(card_game): add Suit::is_black and Rank::value convenience methods --- card_game/src/lib.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/card_game/src/lib.rs b/card_game/src/lib.rs index fcf94fa..ea77918 100644 --- a/card_game/src/lib.rs +++ b/card_game/src/lib.rs @@ -72,6 +72,10 @@ impl Suit { pub const fn is_red(self) -> bool { self as u8 & 0b01 != 0 } + /// Is the suit black. + pub const fn is_black(self) -> bool { + !self.is_red() + } /// Suit value is 2 bits, is_red is the low bit. pub const fn suit_high_bit(self) -> bool { self as u8 & 0b10 != 0 @@ -130,6 +134,10 @@ impl Rank { _ => return None, }) } + /// Numeric value: Ace = 1, King = 13. + pub const fn value(self) -> u8 { + self as u8 + } pub const fn checked_add(self, offset: u8) -> Option { match (self as u8).checked_add(offset) { Some(rank) => Self::new(rank),