From b4cd7e8ea9ef2de46c8b061047d378ece21fd313 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Tue, 7 Apr 2026 01:55:14 +0100 Subject: [PATCH] card:default: implemented defaults for every card type --- src/card/default.rs | 25 +++++++++++++++++++++++++ src/card/mod.rs | 8 +------- 2 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 src/card/default.rs diff --git a/src/card/default.rs b/src/card/default.rs new file mode 100644 index 0000000..6b4a519 --- /dev/null +++ b/src/card/default.rs @@ -0,0 +1,25 @@ +use crate::card::{Card, PlayingCard, Rank, Suit}; + +impl Default for Rank { + fn default() -> Self { + Self::Three + } +} + +impl Default for Suit { + fn default() -> Self { + Self::Diamond + } +} + +impl Default for PlayingCard { + fn default() -> Self { + Self::new(0, Rank::default(), Suit::default()) + } +} + +impl Default for Card { + fn default() -> Self { + Self::PlayingCard(PlayingCard::default()) + } +} diff --git a/src/card/mod.rs b/src/card/mod.rs index 4f99568..d4c0ba4 100644 --- a/src/card/mod.rs +++ b/src/card/mod.rs @@ -1,3 +1,4 @@ +mod default; mod display; mod hash; mod impls; @@ -41,10 +42,3 @@ pub enum Card { Joker(i64), PlayingCard(PlayingCard), } - -/** Given a sequence of Playing Cards, check if they are all of the same rank. - */ -pub fn all_same_rank(cards: &[PlayingCard]) -> bool { - let rank = cards[0].rank; - cards[1..].iter().all(|card| rank == card.rank) -}