From ef391cbdf84cdfa02d0d529bc258b5fab29c8643 Mon Sep 17 00:00:00 2001 From: Geoffrey Allott Date: Tue, 2 Mar 2021 18:18:51 +0000 Subject: [PATCH] clean up warnings --- src/api.rs | 2 -- src/client.rs | 5 ++++- src/dealer.rs | 7 +++---- src/game/mod.rs | 8 ++++---- src/game/poker/classify.rs | 1 + src/game/poker/holdem.rs | 7 +------ src/main.rs | 2 +- src/rng.rs | 4 +--- src/server.rs | 6 +++--- 9 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/api.rs b/src/api.rs index b45f21b..36d3ee3 100644 --- a/src/api.rs +++ b/src/api.rs @@ -52,11 +52,9 @@ pub enum ServerMessage { NewAction { action: UserAction }, TakeActionSuccess { action: UserAction }, TakeActionFailure { action: UserAction, reason: String }, - NewMessage { username: Username, message: String }, LeaveGameSuccess, LeaveGameFailure { reason: String }, LeaveLobbySuccess, LeaveLobbyFailure { reason: String }, - HandHistory { games: Vec<(GameSummary, Vec)> }, // TODO ProtocolError { reason: String }, } diff --git a/src/client.rs b/src/client.rs index 0722c1f..a32af50 100644 --- a/src/client.rs +++ b/src/client.rs @@ -206,13 +206,16 @@ impl ConnectionState { self.client = ClientState::LoggedIn{username, state: LoggedInState::Idle}; ServerMessage::LeaveLobbySuccess } - (&mut ClientState::LoggedIn{username, ..}, ClientMessage::LeaveLobby) => { + (&mut ClientState::LoggedIn{..}, 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}; ServerMessage::LeaveGameSuccess } + (&mut ClientState::LoggedIn{..}, ClientMessage::LeaveGame) => { + ServerMessage::LeaveGameFailure{reason: "Not in game".to_string()} + } (&mut ClientState::LoggedIn{..}, ClientMessage::Logout) => { self.client = ClientState::Connected; ServerMessage::LogoutSuccess diff --git a/src/dealer.rs b/src/dealer.rs index 3aa9644..ba661f2 100644 --- a/src/dealer.rs +++ b/src/dealer.rs @@ -1,12 +1,11 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; use async_std::stream::StreamExt; use futures::channel::mpsc::Receiver; -use rand::prelude::*; use redis::{ErrorKind, RedisError, RedisResult}; use crate::client::ClientInterest; -use crate::game::{Action, Game, ValidatedUserAction}; +use crate::game::{Game, ValidatedUserAction}; use crate::server::{ActionStatus, ServerState}; pub struct Dealer { @@ -26,7 +25,7 @@ impl Dealer { server.register_interests(interests).await; let summary = server.game_summary(id).await?; let seed = server.game_seed(id).await?; - let mut game = Game::new(summary, seed); + let game = Game::new(summary, seed); let mut dealer = Dealer{server, dealer: DealerState{game}}; dealer.retrieve_updates().await?; Ok(dealer) diff --git a/src/game/mod.rs b/src/game/mod.rs index 2ab9e1c..6c73c3b 100644 --- a/src/game/mod.rs +++ b/src/game/mod.rs @@ -4,7 +4,7 @@ mod poker; mod whist; use std::collections::HashSet; -use std::fmt::{Debug, Display, Formatter}; +use std::fmt::Debug; use crate::rng::Seed; use crate::username::Username; @@ -15,7 +15,7 @@ use self::poker::{TexasHoldEm, TexasHoldEmSettings}; pub use self::action::{Action, ActionError, UserAction, ValidatedUserAction}; -pub trait Game : Debug + CloneBox + Send + Sync { +pub trait Game : Debug + CloneBoxGame + Send + Sync { fn id(&self) -> i64; fn players(&self) -> HashSet; fn actions_len(&self) -> usize; @@ -24,11 +24,11 @@ pub trait Game : Debug + CloneBox + Send + Sync { fn next_dealer_action(&self) -> Option; } -trait CloneBox { +pub trait CloneBoxGame { fn clone_box(&self) -> Box; } -impl CloneBox for T { +impl CloneBoxGame for T { fn clone_box(&self) -> Box { Box::new(self.clone()) } diff --git a/src/game/poker/classify.rs b/src/game/poker/classify.rs index cad9402..99124bc 100644 --- a/src/game/poker/classify.rs +++ b/src/game/poker/classify.rs @@ -474,6 +474,7 @@ impl Odds { self.draws as f64 / (self.player1_wins + self.player2_wins + self.draws) as f64 } + #[allow(unused)] // FIXME pub fn favourite(&self) -> Player { match self.player1_wins.cmp(&self.player2_wins) { Ordering::Greater => Player::Player1, diff --git a/src/game/poker/holdem.rs b/src/game/poker/holdem.rs index b2536a6..33a81ea 100644 --- a/src/game/poker/holdem.rs +++ b/src/game/poker/holdem.rs @@ -2,10 +2,8 @@ use std::collections::{HashMap, HashSet}; use std::convert::TryInto; use itertools::Itertools; -use rand::seq::IteratorRandom; -use rand::Rng; -use crate::card::{Card, Suit, FIFTY_TWO_CARD_DECK}; +use crate::card::{Card, FIFTY_TWO_CARD_DECK}; use crate::seats::Seats; use crate::username::Username; use crate::util::max::IteratorMaxItems; @@ -170,9 +168,6 @@ impl Game for TexasHoldEm { Ok(ValidatedUserAction(UserAction{username, action: Action::Leave})) } (_, _) if !self.seats.contains_player(username) => Err(ActionError::NotAuthorised), - (State::NotStarted, Action::Leave) => { - Ok(ValidatedUserAction(UserAction{username, action: Action::Leave})) - } (State::Completed, _) => Err(ActionError::GameHasEnded), (_, Action::Leave) => Err(ActionError::GameHasStarted), (State::Dealing, _) | (State::DealingFlop, _) | (State::DealingTurn, _) | (State::DealingRiver, _) => { diff --git a/src/main.rs b/src/main.rs index 4b3773c..1cd378b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ use signal_hook::consts::signal::*; use signal_hook_async_std::Signals; use tide::{Body, Request, Error, Response, StatusCode}; use tide::utils::After; -use tide_rustls::TlsListener; +//use tide_rustls::TlsListener; use tide_websockets::{Message, WebSocket, WebSocketConnection}; mod api; diff --git a/src/rng.rs b/src/rng.rs index dfe297a..45f7ecc 100644 --- a/src/rng.rs +++ b/src/rng.rs @@ -2,7 +2,7 @@ use std::cmp::{Ord, Eq}; use getrandom::getrandom; use itertools::Itertools; -use rand::{SeedableRng, CryptoRng, RngCore, Rng, Error, seq::IteratorRandom}; +use rand::{SeedableRng, CryptoRng, Rng, RngCore, Error, seq::IteratorRandom}; use rand_chacha::ChaCha20Rng; #[derive(Copy, Clone, Debug, Serialize, Deserialize)] @@ -81,8 +81,6 @@ mod tests { use std::collections::HashSet; - use rand::Rng; - #[test] fn chacha_true_values() { let seed_json = r#"{"rng":"ChaCha20","seed":"0000000000000000000000000000000000000000000000000000000000000000"}"#; diff --git a/src/server.rs b/src/server.rs index 7ff3234..12a4b36 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,13 +1,13 @@ use std::collections::HashSet; use std::convert::TryFrom; -use futures::{channel::mpsc::{Receiver, Sender, channel}, SinkExt, future::try_join_all}; +use futures::{channel::mpsc::{Receiver, Sender, channel}, SinkExt}; use redis::{AsyncCommands, ErrorKind, FromRedisValue, Msg, RedisError, RedisResult, RedisWrite, Script, ToRedisArgs, Value, aio::MultiplexedConnection}; use serde::{Serialize, Deserialize}; use crate::auth::Auth; use crate::client::ClientInterest; -use crate::game::{GameList, GameSettings, GameSummary, UserAction, ValidatedUserAction}; +use crate::game::{GameSettings, GameSummary, ValidatedUserAction}; use crate::rng::Seed; use crate::username::Username; @@ -172,7 +172,7 @@ impl ServerState { for id in games { match self.game_summary(id).await { Ok(summary) => summaries.push(summary), - Err(err) => error!("Could not find summary for game {}", id), + Err(err) => error!("Could not find summary for game {}: {}", id, err), } } Ok(summaries) -- 2.34.1