feat(card_game): add Suit::is_black and Rank::value convenience methods
This commit is contained in:
@@ -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<Rank> {
|
||||
match (self as u8).checked_add(offset) {
|
||||
Some(rank) => Self::new(rank),
|
||||
|
||||
Reference in New Issue
Block a user