Skip to content
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Commit a852ef8

Browse files
FlixFlix
authored andcommitted
refactor for better testing & clippy conform;
fix: allow to set players' jokers to zero
1 parent 0fa0736 commit a852ef8

32 files changed

+382
-389
lines changed

src/datahandler.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl DataHandler
2424
{
2525
let (worker, sender) = DataWorker::new();
2626
worker.spawn_worker();
27-
DataHandler { sender: sender }
27+
DataHandler { sender }
2828
}
2929

3030
/// Create a player in the database
@@ -83,3 +83,10 @@ impl DataHandler
8383
result_receiver.await.map_err(|_err| "db receive data access result error (dropped channel)")
8484
}
8585
}
86+
87+
impl Default for DataHandler
88+
{
89+
fn default() -> Self {
90+
DataHandler::new()
91+
}
92+
}

src/datahandler/database.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl DataBase
2424
{
2525
//be sure UUID is REALLY unique
2626
let mut uuid = String::from("");
27-
while uuid == "" || self.players.contains_key(&uuid)
27+
while uuid.is_empty() || self.players.contains_key(&uuid)
2828
{
2929
uuid = Uuid::new_v4().to_simple().to_string();
3030
}
@@ -58,7 +58,7 @@ impl DataBase
5858
{
5959
//be sure UUID is REALLY unique
6060
let mut uuid = String::from("");
61-
while uuid == "" || self.lobbies.contains_key(&uuid)
61+
while uuid.is_empty() || self.lobbies.contains_key(&uuid)
6262
{
6363
uuid = Uuid::new_v4().to_simple().to_string();
6464
}

src/datahandler/dataworker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ impl DataWorker
3333
pub fn new() -> (Self, mpsc::Sender<DataAccess>)
3434
{
3535
let (sender, receiver) = mpsc::channel(DATA_ACCESS_CAPACITY);
36-
let worker = DataWorker { db: DataBase::new(), receiver: receiver };
36+
let worker = DataWorker { db: DataBase::new(), receiver };
3737
(worker, sender)
3838
}
3939

src/game.rs

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,16 @@ impl Gameshow
7777

7878
async fn generate_lobby_update(&self)
7979
{
80+
let lobby_open = self.is_open().await;
81+
let question_set = self.get_question_set().await;
8082
//send LobbySettingsUpdate to clients
8183
let event = EventType::LobbySettingsUpdate(EventLobbySettingsUpdate {
82-
open: self.is_open().await,
84+
open: lobby_open,
8385
initial_money: self.get_initial_money(),
8486
initial_jokers: self.get_initial_jokers(),
8587
normal_q_money: self.get_normal_q_money(),
8688
estimation_q_money: self.get_estimation_q_money(),
87-
question_set: self.get_question_set().await,
89+
question_set,
8890
});
8991
self.game_events.write().await.add(event);
9092
}
@@ -305,7 +307,7 @@ impl Gameshow
305307
});
306308
self.game_events.write().await.add(event);
307309
//return name
308-
return Some(name);
310+
Some(name)
309311
}
310312
else if self.is_open().await
311313
{ //others need to have unique name (from others and from admin)
@@ -342,11 +344,11 @@ impl Gameshow
342344
});
343345
self.game_events.write().await.add(event);
344346
//return name
345-
return Some(name);
347+
Some(name)
346348
}
347349
else
348350
{
349-
return None;
351+
None
350352
}
351353
}
352354

@@ -535,7 +537,7 @@ impl Gameshow
535537
{ //set player's vs_player
536538
player.vs_player = String::from(vs_player);
537539
}
538-
else if player.vs_player == ""
540+
else if player.vs_player.is_empty()
539541
{ //check if player has selected
540542
all_selected = false;
541543
}
@@ -670,18 +672,7 @@ impl Gameshow
670672
let mut repeat = true;
671673
while repeat
672674
{
673-
repeat = !state::state_transition(
674-
&self.lobby_state,
675-
&self.questions,
676-
&self.current_question,
677-
&self.player_data,
678-
&self.game_events,
679-
&self.open,
680-
&self.param_initial_money,
681-
&self.param_initial_jokers,
682-
&self.param_normal_q_money,
683-
&self.param_estimation_q_money
684-
).await;
675+
repeat = !state::state_transition(&self).await;
685676
}
686677
}
687678
}
@@ -714,7 +705,7 @@ pub struct PublicPlayerData
714705
answer: usize,
715706
}
716707

717-
fn make_public_player_data(players: &Vec<PlayerData>) -> Vec<PublicPlayerData>
708+
fn make_public_player_data(players: &[PlayerData]) -> Vec<PublicPlayerData>
718709
{
719710
players.iter().map(|player| {
720711
PublicPlayerData {
@@ -742,5 +733,5 @@ fn generate_random_string(length: usize) -> String
742733
{
743734
rnd_string.push(choose_from.choose(&mut rng).unwrap().to_owned());
744735
}
745-
return rnd_string;
736+
rnd_string
746737
}

src/game/events.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ impl EventManager
3333
{
3434
let last = self.events.last();
3535
let mut id = 0;
36-
if last.is_some()
36+
if let Some(last) = last
3737
{
38-
id = last.unwrap().id + 1;
38+
id = last.id + 1;
3939
}
4040
let event_type = format!("{}", event);
4141

4242
let new_event = Event {
43-
id: id,
43+
id,
4444
event_name: event_type,
45-
event: event,
45+
event,
4646
};
4747
self.events.push(new_event.clone());
4848
self.event_sender.send(new_event).ok();

src/game/questions.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::path::{Path, PathBuf};
33
use serde::{Serialize, Deserialize};
44

55

6-
const QUESTIONS_FOLDER:&'static str = "./questions";
6+
const QUESTIONS_FOLDER: &str = "./questions";
77

88

99
//different gameshow question types
@@ -48,10 +48,10 @@ pub fn find_question_files() -> std::io::Result<Vec<(String, PathBuf)>>
4848
{
4949
let file_name = path.file_stem();
5050
let file_type = path.extension();
51-
if file_type.is_some()
51+
if let Some(file_type) = file_type
5252
{
5353
let file_name = file_name.unwrap().to_string_lossy().into_owned();
54-
let file_type = file_type.unwrap().to_string_lossy().to_lowercase();
54+
let file_type = file_type.to_string_lossy().to_lowercase();
5555
if file_type == "json" && file_name != "questions-example"
5656
{
5757
list.push((file_name, path));

0 commit comments

Comments
 (0)