remove unused and clean up some warnings
authorGeoffrey Allott <geoffrey@allott.email>
Tue, 2 Mar 2021 18:06:52 +0000 (18:06 +0000)
committerGeoffrey Allott <geoffrey@allott.email>
Tue, 2 Mar 2021 18:06:52 +0000 (18:06 +0000)
src/client.rs
src/hands.rs [deleted file]
src/main.rs
src/seats.rs

index c30a07b12dab21731a597a2a0f4a9d0fbdeb218f..0722c1f218c49330f5be349fe58919d82caba1e3 100644 (file)
@@ -204,7 +204,10 @@ impl ConnectionState {
             }
             (&mut ClientState::LoggedIn{username, state: LoggedInState::InLobby{..}}, ClientMessage::LeaveLobby) => {
                 self.client = ClientState::LoggedIn{username, state: LoggedInState::Idle};
-                ServerMessage::LeaveGameSuccess
+                ServerMessage::LeaveLobbySuccess
+            }
+            (&mut ClientState::LoggedIn{username, ..}, ClientMessage::LeaveLobby) => {
+                ServerMessage::LeaveLobbyFailure{reason: "Not in lobby".to_string()}
             }
             (&mut ClientState::LoggedIn{username, state: LoggedInState::InGame{..}}, ClientMessage::LeaveGame) => {
                 self.client = ClientState::LoggedIn{username, state: LoggedInState::Idle};
diff --git a/src/hands.rs b/src/hands.rs
deleted file mode 100644 (file)
index c4b95bb..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-use std::collections::{HashMap, HashSet};
-
-use itertools::Itertools;
-
-use crate::card::{Card, Suit, FIFTY_TWO_CARD_DECK};
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Hands {
-    hands: HashMap<String, HashSet<Card>>,
-    community: Vec<Card>,
-    trick: Vec<(String, Card)>,
-    deck: HashSet<Card>,
-}
-
-impl Hands {
-    pub fn new() -> Hands {
-        Hands {
-            hands: HashMap::new(),
-            community: Vec::new(),
-            trick: Vec::new(),
-            deck: FIFTY_TWO_CARD_DECK.iter().cloned().collect(),
-        }
-    }
-
-    pub fn clear(&mut self) {
-        self.hands.clear();
-        self.community.clear();
-        self.trick.clear();
-        self.deck = FIFTY_TWO_CARD_DECK.iter().cloned().collect();
-    }
-
-    pub fn clear_trick(&mut self) {
-        self.trick.clear();
-    }
-
-    pub fn trick_winner(&self, trumps: Option<Suit>) -> Option<String> {
-        let mut winner = None;
-        for (player, card) in &self.trick {
-            match winner {
-                None => winner = Some((player, card)),
-                Some((_, best)) if
-                    Some(card.suit) == trumps && (card.rank > best.rank || Some(best.suit) != trumps) ||
-                    card.suit == best.suit && card.rank > best.rank
-                        => winner = Some((player, card)),
-                Some((_, _)) => {},
-            }
-        }
-        winner.map(|(player, _)| (*player).clone())
-    }
-
-    pub fn all_players_have_played_a_card(&self) -> bool {
-        let all_players: HashSet<_> = self.hands.keys().collect();
-        let players_that_have_played_a_card: HashSet<_> = self.trick.iter().map(|(player, _)| player).collect();
-        all_players == players_that_have_played_a_card
-    }
-
-    pub fn play_card(&mut self, username: String, card: Card) {
-        if let Some(set) = self.hands.get_mut(&username) {
-            if set.remove(&card) {
-                self.trick.push((username, card));
-            } else {
-                error!("Tried to remove {} from {}'s hand - had [{}]", card, username, set.iter().format(", "));
-            }
-        } else {
-            error!("Tried to remove {} from {}'s hand - had [{}]", card, username, self.hands.keys().format(", "));
-        }
-    }
-
-    pub fn reveal_card(&mut self, username: &str, card: Card) {
-        // TODO
-    }
-
-    pub fn deck(&self) -> HashSet<Card> {
-        self.deck.clone()
-    }
-
-    pub fn deal_card(&mut self, username: String, card: Card) {
-        if !self.deck.remove(&card) {
-            error!("Tried to deal card {} but it was not present in deck: [{}]", card, self.deck.iter().format(", "));
-        }
-        let set = self.hands.entry(username).or_insert_with(HashSet::new);
-        set.insert(card);
-    }
-
-    pub fn deal_community_card(&mut self, card: Card) {
-        self.community.push(card);
-    }
-
-    pub fn player_has_card(&self, username: &str, card: Card) -> bool {
-        if let Some(hand) = self.hands.get(username) {
-            hand.contains(&card)
-        } else {
-            false
-        }
-    }
-}
index 4d558631180ad9fa1ffcf6b140c0d8ab3f1251ce..4b3773c1217979375320167b6958d4b2ff8a28d9 100644 (file)
@@ -21,7 +21,6 @@ mod card;
 mod client;
 mod dealer;
 mod game;
-mod hands;
 mod rng;
 mod seats;
 mod server;
index 5a5047ce65f233a1f1d96a2f49501d05db931508..7bc7fdc0617a527b887b7d8335b0267bc7bb9c15 100644 (file)
@@ -100,9 +100,9 @@ mod tests {
     #[test]
     fn player_after_absent_player_is_none() {
         let mut seats = Seats::new();
-        seats.add_player(1, "Player_1".parse().unwrap());
-        seats.add_player(2, "Player_2".parse().unwrap());
-        seats.add_player(3, "Player_3".parse().unwrap());
+        seats.add_player(1, "Player_1".parse().unwrap()).unwrap();
+        seats.add_player(2, "Player_2".parse().unwrap()).unwrap();
+        seats.add_player(3, "Player_3".parse().unwrap()).unwrap();
         assert_eq!(None, seats.player_after("Player_4".parse().unwrap()));
         assert!(seats.seat_is_available(0));
         assert!(!seats.seat_is_available(1));
@@ -114,7 +114,7 @@ mod tests {
     #[test]
     fn player_after_single_player_is_none() {
         let mut seats = Seats::new();
-        seats.add_player(1, "Player_1".parse().unwrap());
+        seats.add_player(1, "Player_1".parse().unwrap()).unwrap();
         assert_eq!(None, seats.player_after("Player_1".parse().unwrap()));
         assert!(seats.seat_is_available(0));
         assert!(!seats.seat_is_available(1));
@@ -127,9 +127,9 @@ mod tests {
         let player_2 = "Player_2".parse().unwrap();
         let player_3 = "Player_3".parse().unwrap();
         let mut seats = Seats::new();
-        seats.add_player(1, player_1);
-        seats.add_player(2, player_2);
-        seats.add_player(3, player_3);
+        seats.add_player(1, player_1).unwrap();
+        seats.add_player(2, player_2).unwrap();
+        seats.add_player(3, player_3).unwrap();
         assert_eq!(player_2, seats.player_after(player_1).unwrap());
         assert_eq!(player_3, seats.player_after(player_2).unwrap());
     }
@@ -140,9 +140,9 @@ mod tests {
         let player_5 = "Player_5".parse().unwrap();
         let player_8 = "Player_8".parse().unwrap();
         let mut seats = Seats::new();
-        seats.add_player(1, player_1);
-        seats.add_player(5, player_5);
-        seats.add_player(8, player_8);
+        seats.add_player(1, player_1).unwrap();
+        seats.add_player(5, player_5).unwrap();
+        seats.add_player(8, player_8).unwrap();
         assert_eq!(player_1, seats.player_after(player_8).unwrap());
     }
 
@@ -151,8 +151,8 @@ mod tests {
         let player_1 = "Player_1".parse().unwrap();
         let player_4 = "Player_4".parse().unwrap();
         let mut seats = Seats::new();
-        seats.add_player(1, player_1);
-        seats.add_player(4, player_4);
+        seats.add_player(1, player_1).unwrap();
+        seats.add_player(4, player_4).unwrap();
         assert_eq!(player_4, seats.player_after(player_1).unwrap());
         assert_eq!(player_1, seats.player_after(player_4).unwrap());
     }
@@ -163,10 +163,10 @@ mod tests {
         let player_2 = "Player_2".parse().unwrap();
         let player_3 = "Player_3".parse().unwrap();
         let mut seats = Seats::new();
-        seats.add_player(1, player_1);
-        seats.add_player(2, player_2);
-        seats.add_player(3, player_3);
-        seats.remove_player(player_2);
+        seats.add_player(1, player_1).unwrap();
+        seats.add_player(2, player_2).unwrap();
+        seats.add_player(3, player_3).unwrap();
+        seats.remove_player(player_2).unwrap();
         assert_eq!(player_3, seats.player_after(player_1).unwrap());
         assert_eq!(None, seats.player_after(player_2));
         assert_eq!(player_1, seats.player_after(player_3).unwrap());