clean up all warnings
authorGeoffrey Allott <geoffrey@allott.email>
Fri, 4 Aug 2023 19:22:35 +0000 (20:22 +0100)
committerGeoffrey Allott <geoffrey@allott.email>
Fri, 4 Aug 2023 19:22:35 +0000 (20:22 +0100)
src/card.rs
src/game/chatroom.rs
src/game/poker/classify.rs

index 0c0b560bdd72c835ba932b2b7db761196a2fb6c4..51ce22c690e9776ac6940365a7a8bd86b25fb6b6 100644 (file)
@@ -227,113 +227,121 @@ impl FromIterator<Card> for CardSet {
     }
 }
 
-pub const TWO_OF_CLUBS: Card = Card { rank: Two, suit: Clubs };
-pub const THREE_OF_CLUBS: Card = Card { rank: Three, suit: Clubs };
-pub const FOUR_OF_CLUBS: Card = Card { rank: Four, suit: Clubs };
-pub const FIVE_OF_CLUBS: Card = Card { rank: Five, suit: Clubs };
-pub const SIX_OF_CLUBS: Card = Card { rank: Six, suit: Clubs };
-pub const SEVEN_OF_CLUBS: Card = Card { rank: Seven, suit: Clubs };
-pub const EIGHT_OF_CLUBS: Card = Card { rank: Eight, suit: Clubs };
-pub const NINE_OF_CLUBS: Card = Card { rank: Nine, suit: Clubs };
-pub const TEN_OF_CLUBS: Card = Card { rank: Ten, suit: Clubs };
-pub const JACK_OF_CLUBS: Card = Card { rank: Jack, suit: Clubs };
-pub const QUEEN_OF_CLUBS: Card = Card { rank: Queen, suit: Clubs };
-pub const KING_OF_CLUBS: Card = Card { rank: King, suit: Clubs };
-pub const ACE_OF_CLUBS: Card = Card { rank: Ace, suit: Clubs };
-
-pub const TWO_OF_DIAMONDS: Card = Card { rank: Two, suit: Diamonds };
-pub const THREE_OF_DIAMONDS: Card = Card { rank: Three, suit: Diamonds };
-pub const FOUR_OF_DIAMONDS: Card = Card { rank: Four, suit: Diamonds };
-pub const FIVE_OF_DIAMONDS: Card = Card { rank: Five, suit: Diamonds };
-pub const SIX_OF_DIAMONDS: Card = Card { rank: Six, suit: Diamonds };
-pub const SEVEN_OF_DIAMONDS: Card = Card { rank: Seven, suit: Diamonds };
-pub const EIGHT_OF_DIAMONDS: Card = Card { rank: Eight, suit: Diamonds };
-pub const NINE_OF_DIAMONDS: Card = Card { rank: Nine, suit: Diamonds };
-pub const TEN_OF_DIAMONDS: Card = Card { rank: Ten, suit: Diamonds };
-pub const JACK_OF_DIAMONDS: Card = Card { rank: Jack, suit: Diamonds };
-pub const QUEEN_OF_DIAMONDS: Card = Card { rank: Queen, suit: Diamonds };
-pub const KING_OF_DIAMONDS: Card = Card { rank: King, suit: Diamonds };
-pub const ACE_OF_DIAMONDS: Card = Card { rank: Ace, suit: Diamonds };
-
-pub const TWO_OF_HEARTS: Card = Card { rank: Two, suit: Hearts };
-pub const THREE_OF_HEARTS: Card = Card { rank: Three, suit: Hearts };
-pub const FOUR_OF_HEARTS: Card = Card { rank: Four, suit: Hearts };
-pub const FIVE_OF_HEARTS: Card = Card { rank: Five, suit: Hearts };
-pub const SIX_OF_HEARTS: Card = Card { rank: Six, suit: Hearts };
-pub const SEVEN_OF_HEARTS: Card = Card { rank: Seven, suit: Hearts };
-pub const EIGHT_OF_HEARTS: Card = Card { rank: Eight, suit: Hearts };
-pub const NINE_OF_HEARTS: Card = Card { rank: Nine, suit: Hearts };
-pub const TEN_OF_HEARTS: Card = Card { rank: Ten, suit: Hearts };
-pub const JACK_OF_HEARTS: Card = Card { rank: Jack, suit: Hearts };
-pub const QUEEN_OF_HEARTS: Card = Card { rank: Queen, suit: Hearts };
-pub const KING_OF_HEARTS: Card = Card { rank: King, suit: Hearts };
-pub const ACE_OF_HEARTS: Card = Card { rank: Ace, suit: Hearts };
-
-pub const TWO_OF_SPADES: Card = Card { rank: Two, suit: Spades };
-pub const THREE_OF_SPADES: Card = Card { rank: Three, suit: Spades };
-pub const FOUR_OF_SPADES: Card = Card { rank: Four, suit: Spades };
-pub const FIVE_OF_SPADES: Card = Card { rank: Five, suit: Spades };
-pub const SIX_OF_SPADES: Card = Card { rank: Six, suit: Spades };
-pub const SEVEN_OF_SPADES: Card = Card { rank: Seven, suit: Spades };
-pub const EIGHT_OF_SPADES: Card = Card { rank: Eight, suit: Spades };
-pub const NINE_OF_SPADES: Card = Card { rank: Nine, suit: Spades };
-pub const TEN_OF_SPADES: Card = Card { rank: Ten, suit: Spades };
-pub const JACK_OF_SPADES: Card = Card { rank: Jack, suit: Spades };
-pub const QUEEN_OF_SPADES: Card = Card { rank: Queen, suit: Spades };
-pub const KING_OF_SPADES: Card = Card { rank: King, suit: Spades };
-pub const ACE_OF_SPADES: Card = Card { rank: Ace, suit: Spades };
-
-pub const FIFTY_TWO_CARD_DECK: [Card; 52] = [
-    ACE_OF_SPADES,
-    ACE_OF_HEARTS,
-    ACE_OF_DIAMONDS,
-    ACE_OF_CLUBS,
-    KING_OF_SPADES,
-    KING_OF_HEARTS,
-    KING_OF_DIAMONDS,
-    KING_OF_CLUBS,
-    QUEEN_OF_SPADES,
-    QUEEN_OF_HEARTS,
-    QUEEN_OF_DIAMONDS,
-    QUEEN_OF_CLUBS,
-    JACK_OF_SPADES,
-    JACK_OF_HEARTS,
-    JACK_OF_DIAMONDS,
-    JACK_OF_CLUBS,
-    TEN_OF_SPADES,
-    TEN_OF_HEARTS,
-    TEN_OF_DIAMONDS,
-    TEN_OF_CLUBS,
-    NINE_OF_SPADES,
-    NINE_OF_HEARTS,
-    NINE_OF_DIAMONDS,
-    NINE_OF_CLUBS,
-    EIGHT_OF_SPADES,
-    EIGHT_OF_HEARTS,
-    EIGHT_OF_DIAMONDS,
-    EIGHT_OF_CLUBS,
-    SEVEN_OF_SPADES,
-    SEVEN_OF_HEARTS,
-    SEVEN_OF_DIAMONDS,
-    SEVEN_OF_CLUBS,
-    SIX_OF_SPADES,
-    SIX_OF_HEARTS,
-    SIX_OF_DIAMONDS,
-    SIX_OF_CLUBS,
-    FIVE_OF_SPADES,
-    FIVE_OF_HEARTS,
-    FIVE_OF_DIAMONDS,
-    FIVE_OF_CLUBS,
-    FOUR_OF_SPADES,
-    FOUR_OF_HEARTS,
-    FOUR_OF_DIAMONDS,
-    FOUR_OF_CLUBS,
-    THREE_OF_SPADES,
-    THREE_OF_HEARTS,
-    THREE_OF_DIAMONDS,
-    THREE_OF_CLUBS,
-    TWO_OF_SPADES,
-    TWO_OF_HEARTS,
-    TWO_OF_DIAMONDS,
-    TWO_OF_CLUBS,
-];
+#[cfg(test)]
+pub use constants::*;
+
+#[cfg(test)]
+mod constants {
+    use super::*;
+
+    pub const TWO_OF_CLUBS: Card = Card { rank: Two, suit: Clubs };
+    pub const THREE_OF_CLUBS: Card = Card { rank: Three, suit: Clubs };
+    pub const FOUR_OF_CLUBS: Card = Card { rank: Four, suit: Clubs };
+    pub const FIVE_OF_CLUBS: Card = Card { rank: Five, suit: Clubs };
+    pub const SIX_OF_CLUBS: Card = Card { rank: Six, suit: Clubs };
+    pub const SEVEN_OF_CLUBS: Card = Card { rank: Seven, suit: Clubs };
+    pub const EIGHT_OF_CLUBS: Card = Card { rank: Eight, suit: Clubs };
+    pub const NINE_OF_CLUBS: Card = Card { rank: Nine, suit: Clubs };
+    pub const TEN_OF_CLUBS: Card = Card { rank: Ten, suit: Clubs };
+    pub const JACK_OF_CLUBS: Card = Card { rank: Jack, suit: Clubs };
+    pub const QUEEN_OF_CLUBS: Card = Card { rank: Queen, suit: Clubs };
+    pub const KING_OF_CLUBS: Card = Card { rank: King, suit: Clubs };
+    pub const ACE_OF_CLUBS: Card = Card { rank: Ace, suit: Clubs };
+
+    pub const TWO_OF_DIAMONDS: Card = Card { rank: Two, suit: Diamonds };
+    pub const THREE_OF_DIAMONDS: Card = Card { rank: Three, suit: Diamonds };
+    pub const FOUR_OF_DIAMONDS: Card = Card { rank: Four, suit: Diamonds };
+    pub const FIVE_OF_DIAMONDS: Card = Card { rank: Five, suit: Diamonds };
+    pub const SIX_OF_DIAMONDS: Card = Card { rank: Six, suit: Diamonds };
+    pub const SEVEN_OF_DIAMONDS: Card = Card { rank: Seven, suit: Diamonds };
+    pub const EIGHT_OF_DIAMONDS: Card = Card { rank: Eight, suit: Diamonds };
+    pub const NINE_OF_DIAMONDS: Card = Card { rank: Nine, suit: Diamonds };
+    pub const TEN_OF_DIAMONDS: Card = Card { rank: Ten, suit: Diamonds };
+    pub const JACK_OF_DIAMONDS: Card = Card { rank: Jack, suit: Diamonds };
+    pub const QUEEN_OF_DIAMONDS: Card = Card { rank: Queen, suit: Diamonds };
+    pub const KING_OF_DIAMONDS: Card = Card { rank: King, suit: Diamonds };
+    pub const ACE_OF_DIAMONDS: Card = Card { rank: Ace, suit: Diamonds };
+
+    pub const TWO_OF_HEARTS: Card = Card { rank: Two, suit: Hearts };
+    pub const THREE_OF_HEARTS: Card = Card { rank: Three, suit: Hearts };
+    pub const FOUR_OF_HEARTS: Card = Card { rank: Four, suit: Hearts };
+    pub const FIVE_OF_HEARTS: Card = Card { rank: Five, suit: Hearts };
+    pub const SIX_OF_HEARTS: Card = Card { rank: Six, suit: Hearts };
+    pub const SEVEN_OF_HEARTS: Card = Card { rank: Seven, suit: Hearts };
+    pub const EIGHT_OF_HEARTS: Card = Card { rank: Eight, suit: Hearts };
+    pub const NINE_OF_HEARTS: Card = Card { rank: Nine, suit: Hearts };
+    pub const TEN_OF_HEARTS: Card = Card { rank: Ten, suit: Hearts };
+    pub const JACK_OF_HEARTS: Card = Card { rank: Jack, suit: Hearts };
+    pub const QUEEN_OF_HEARTS: Card = Card { rank: Queen, suit: Hearts };
+    pub const KING_OF_HEARTS: Card = Card { rank: King, suit: Hearts };
+    pub const ACE_OF_HEARTS: Card = Card { rank: Ace, suit: Hearts };
+
+    pub const TWO_OF_SPADES: Card = Card { rank: Two, suit: Spades };
+    pub const THREE_OF_SPADES: Card = Card { rank: Three, suit: Spades };
+    pub const FOUR_OF_SPADES: Card = Card { rank: Four, suit: Spades };
+    pub const FIVE_OF_SPADES: Card = Card { rank: Five, suit: Spades };
+    pub const SIX_OF_SPADES: Card = Card { rank: Six, suit: Spades };
+    pub const SEVEN_OF_SPADES: Card = Card { rank: Seven, suit: Spades };
+    pub const EIGHT_OF_SPADES: Card = Card { rank: Eight, suit: Spades };
+    pub const NINE_OF_SPADES: Card = Card { rank: Nine, suit: Spades };
+    pub const TEN_OF_SPADES: Card = Card { rank: Ten, suit: Spades };
+    pub const JACK_OF_SPADES: Card = Card { rank: Jack, suit: Spades };
+    pub const QUEEN_OF_SPADES: Card = Card { rank: Queen, suit: Spades };
+    pub const KING_OF_SPADES: Card = Card { rank: King, suit: Spades };
+    pub const ACE_OF_SPADES: Card = Card { rank: Ace, suit: Spades };
+
+    pub const FIFTY_TWO_CARD_DECK: [Card; 52] = [
+        ACE_OF_SPADES,
+        ACE_OF_HEARTS,
+        ACE_OF_DIAMONDS,
+        ACE_OF_CLUBS,
+        KING_OF_SPADES,
+        KING_OF_HEARTS,
+        KING_OF_DIAMONDS,
+        KING_OF_CLUBS,
+        QUEEN_OF_SPADES,
+        QUEEN_OF_HEARTS,
+        QUEEN_OF_DIAMONDS,
+        QUEEN_OF_CLUBS,
+        JACK_OF_SPADES,
+        JACK_OF_HEARTS,
+        JACK_OF_DIAMONDS,
+        JACK_OF_CLUBS,
+        TEN_OF_SPADES,
+        TEN_OF_HEARTS,
+        TEN_OF_DIAMONDS,
+        TEN_OF_CLUBS,
+        NINE_OF_SPADES,
+        NINE_OF_HEARTS,
+        NINE_OF_DIAMONDS,
+        NINE_OF_CLUBS,
+        EIGHT_OF_SPADES,
+        EIGHT_OF_HEARTS,
+        EIGHT_OF_DIAMONDS,
+        EIGHT_OF_CLUBS,
+        SEVEN_OF_SPADES,
+        SEVEN_OF_HEARTS,
+        SEVEN_OF_DIAMONDS,
+        SEVEN_OF_CLUBS,
+        SIX_OF_SPADES,
+        SIX_OF_HEARTS,
+        SIX_OF_DIAMONDS,
+        SIX_OF_CLUBS,
+        FIVE_OF_SPADES,
+        FIVE_OF_HEARTS,
+        FIVE_OF_DIAMONDS,
+        FIVE_OF_CLUBS,
+        FOUR_OF_SPADES,
+        FOUR_OF_HEARTS,
+        FOUR_OF_DIAMONDS,
+        FOUR_OF_CLUBS,
+        THREE_OF_SPADES,
+        THREE_OF_HEARTS,
+        THREE_OF_DIAMONDS,
+        THREE_OF_CLUBS,
+        TWO_OF_SPADES,
+        TWO_OF_HEARTS,
+        TWO_OF_DIAMONDS,
+        TWO_OF_CLUBS,
+    ];
+}
index 4b10a5acefeebe6f667a239c0f8544922a5d5db1..20e220c5b31f5d33f31d5e5faa2fb0c9805e3d5d 100644 (file)
@@ -7,20 +7,6 @@ use crate::util::timestamp::Timestamp;
 use super::ValidatedUserAction;
 use super::{Game, UserAction};
 
-#[derive(Debug, Clone)]
-enum ChatroomAction {
-    Join,
-    Message(String),
-    Leave,
-}
-
-#[derive(Debug, Clone)]
-struct ChatroomUserAction {
-    timestamp: Timestamp,
-    username: Username,
-    action: ChatroomAction,
-}
-
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct ChatroomSettings {
     title: String,
@@ -35,14 +21,13 @@ impl ChatroomSettings {
 #[derive(Debug, Clone)]
 pub struct Chatroom {
     id: i64,
-    settings: ChatroomSettings,
-    messages: Vec<ChatroomUserAction>,
+    message_count: usize,
     users: HashSet<Username>,
 }
 
 impl Chatroom {
-    pub fn new(id: i64, settings: ChatroomSettings) -> Self {
-        Chatroom { id, settings, messages: Vec::new(), users: HashSet::new() }
+    pub fn new(id: i64, _: ChatroomSettings) -> Self {
+        Chatroom { id, message_count: 0, users: HashSet::new() }
     }
 }
 
@@ -56,7 +41,7 @@ impl Game for Chatroom {
     }
 
     fn actions_len(&self) -> usize {
-        self.messages.len()
+        self.message_count
     }
 
     fn validate_action(&self, action: UserAction) -> Result<ValidatedUserAction, ActionError> {
@@ -71,19 +56,19 @@ impl Game for Chatroom {
         }
     }
 
-    fn take_action(&mut self, ValidatedUserAction(UserAction { timestamp, username, action }): ValidatedUserAction) -> Result<(), ActionError> {
+    fn take_action(&mut self, ValidatedUserAction(UserAction { username, action, .. }): ValidatedUserAction) -> Result<(), ActionError> {
         match action {
             Action::Join { .. } => {
-                self.messages.push(ChatroomUserAction { timestamp, username, action: ChatroomAction::Join });
+                self.message_count += 1;
                 self.users.insert(username);
                 Ok(())
             }
-            Action::Message { message } => {
-                self.messages.push(ChatroomUserAction { timestamp, username, action: ChatroomAction::Message(message) });
+            Action::Message { .. } => {
+                self.message_count += 1;
                 Ok(())
             }
             Action::Leave => {
-                self.messages.push(ChatroomUserAction { timestamp, username, action: ChatroomAction::Leave });
+                self.message_count += 1;
                 self.users.remove(&username);
                 Ok(())
             }
index a75d0294e5a4025b7dc4911a057e41f28cf4ca41..9ad775f6c9847c3088a406153881c2a35c686392 100644 (file)
@@ -494,6 +494,7 @@ impl Display for Odds {
     }
 }
 
+#[cfg(test)]
 pub fn heads_up_odds(player1: [Card; 2], player2: [Card; 2]) -> Odds {
     let mut odds = Odds { player1_wins: 0, player2_wins: 0, draws: 0 };
     let cards: Vec<Card> = FIFTY_TWO_CARD_DECK