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),