[INFO] cloning repository https://github.com/donovanclay/texas-holdem
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/donovanclay/texas-holdem" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonovanclay%2Ftexas-holdem", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonovanclay%2Ftexas-holdem'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 76f45b10a7f6101c9da58c15052b2e822de3b4a9
[INFO] checking donovanclay/texas-holdem against try#18c1d185ac7a6a3bf399296b35e4b2736809a756 for pr-146972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonovanclay%2Ftexas-holdem" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/donovanclay/texas-holdem
[INFO] finished tweaking git repo https://github.com/donovanclay/texas-holdem
[INFO] tweaked toml for git repo https://github.com/donovanclay/texas-holdem written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/donovanclay/texas-holdem on toolchain 18c1d185ac7a6a3bf399296b35e4b2736809a756
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/donovanclay/texas-holdem already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded queue v0.3.1
[INFO] [stderr]   Downloaded combinations v0.1.0
[INFO] [stderr]   Downloaded rand_chacha v0.9.0-alpha.1
[INFO] [stderr]   Downloaded tokio-tungstenite v0.23.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.0-alpha.6
[INFO] [stderr]   Downloaded rand_core v0.9.0-alpha.1
[INFO] [stderr]   Downloaded rand v0.9.0-alpha.1
[INFO] [stderr]   Downloaded zerocopy v0.8.0-alpha.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc2a335b562675c11df7ac971264b8c7ecc3272b95b50ebea50102571cb8ef8c
[INFO] running `Command { std: "docker" "start" "-a" "dc2a335b562675c11df7ac971264b8c7ecc3272b95b50ebea50102571cb8ef8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc2a335b562675c11df7ac971264b8c7ecc3272b95b50ebea50102571cb8ef8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc2a335b562675c11df7ac971264b8c7ecc3272b95b50ebea50102571cb8ef8c", kill_on_drop: false }`
[INFO] [stdout] dc2a335b562675c11df7ac971264b8c7ecc3272b95b50ebea50102571cb8ef8c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6fdf5b25e174d1634e21623b4db320bad8d0d6d9d331e47d78447947af4c02d8
[INFO] running `Command { std: "docker" "start" "-a" "6fdf5b25e174d1634e21623b4db320bad8d0d6d9d331e47d78447947af4c02d8", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]    Compiling httparse v1.9.3
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling syn v2.0.53
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling zerocopy v0.8.0-alpha.6
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]     Checking winnow v0.6.13
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling tower-service v0.3.2
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling inlinable_string v0.1.15
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling stable-pattern v0.1.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling tokio v1.38.0
[INFO] [stderr]    Compiling state v0.6.0
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling either v1.12.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling rocket v0.5.1
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]    Compiling time v0.3.36
[INFO] [stderr]     Checking binascii v0.1.4
[INFO] [stderr]     Checking atomic v0.5.3
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking queue v0.3.1
[INFO] [stderr]     Checking combinations v0.1.0
[INFO] [stderr]    Compiling futures v0.3.30
[INFO] [stderr]     Checking rand_core v0.9.0-alpha.1
[INFO] [stderr]     Checking rand_chacha v0.9.0-alpha.1
[INFO] [stderr]     Checking rand v0.9.0-alpha.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling hyper v0.14.29
[INFO] [stderr]    Compiling getset v0.1.2
[INFO] [stderr]    Compiling devise_core v0.4.1
[INFO] [stderr]    Compiling serde_derive v1.0.203
[INFO] [stderr]    Compiling tokio-macros v2.3.0
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]    Compiling ref-cast-impl v1.0.23
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]    Compiling devise_codegen v0.4.1
[INFO] [stderr]    Compiling ref-cast v1.0.23
[INFO] [stderr]     Checking async-stream v0.3.5
[INFO] [stderr]     Checking pear v0.2.9
[INFO] [stderr]     Checking thiserror v1.0.61
[INFO] [stderr]    Compiling devise v0.4.1
[INFO] [stderr]     Checking tungstenite v0.23.0
[INFO] [stderr]    Compiling rocket_http v0.5.1
[INFO] [stderr]    Compiling rocket_codegen v0.5.1
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]     Checking tokio-stream v0.1.15
[INFO] [stderr]     Checking tokio-tungstenite v0.23.0
[INFO] [stderr]     Checking serde_spanned v0.6.6
[INFO] [stderr]     Checking toml_datetime v0.6.6
[INFO] [stderr]     Checking ubyte v0.10.4
[INFO] [stderr]     Checking serde_json v1.0.117
[INFO] [stderr]     Checking toml_edit v0.22.14
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking toml v0.8.14
[INFO] [stderr]     Checking texas-holdem v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected identifier, found keyword `type`
[INFO] [stdout]   --> src/message_utils.rs:87:46
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ^^^^ expected identifier, found keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `type` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.r#type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found keyword `type`
[INFO] [stdout]   --> src/message_utils.rs:87:46
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ^^^^ expected identifier, found keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `type` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.r#type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env` and `io`
[INFO] [stdout]  --> src/main.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{env, io};
[INFO] [stdout]   |           ^^^  ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::BuildHasherDefault`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::BuildHasherDefault;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]   --> src/main.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde_json::{from_str, json, Value};
[INFO] [stdout]    |                            ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MutexGuard`
[INFO] [stdout]  --> src/utils.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex, MutexGuard};
[INFO] [stdout]   |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq::SliceRandom`
[INFO] [stdout]  --> src/game.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::seq::SliceRandom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/game.rs:344:16
[INFO] [stdout]     |
[INFO] [stdout] 344 |             if (player.get_money() == 0) {
[INFO] [stdout]     |                ^                       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 344 -             if (player.get_money() == 0) {
[INFO] [stdout] 344 +             if player.get_money() == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::Status`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rocket::http::Status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::response::status`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use rocket::response::status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinTableOk`, `JoinTable`, `QueryTables`, and `TablesInfo`
[INFO] [stdout]   --> src/main.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 | ...ake, HandshakeOk, JoinTable, JoinTableOk, MessageType, QueryTables, StartNewTable, StartNewTableOk, TablesInfo};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^^^^               ^^^^^^^^^^^                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env` and `io`
[INFO] [stdout]  --> src/main.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{env, io};
[INFO] [stdout]   |           ^^^  ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::BuildHasherDefault`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::BuildHasherDefault;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]   --> src/main.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde_json::{from_str, json, Value};
[INFO] [stdout]    |                            ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MutexGuard`
[INFO] [stdout]  --> src/utils.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex, MutexGuard};
[INFO] [stdout]   |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq::SliceRandom`
[INFO] [stdout]  --> src/game.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::seq::SliceRandom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/game.rs:344:16
[INFO] [stdout]     |
[INFO] [stdout] 344 |             if (player.get_money() == 0) {
[INFO] [stdout]     |                ^                       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 344 -             if (player.get_money() == 0) {
[INFO] [stdout] 344 +             if player.get_money() == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::Status`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rocket::http::Status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::response::status`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use rocket::response::status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinTableOk`, `JoinTable`, `QueryTables`, and `TablesInfo`
[INFO] [stdout]   --> src/main.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 | ...ake, HandshakeOk, JoinTable, JoinTableOk, MessageType, QueryTables, StartNewTable, StartNewTableOk, TablesInfo};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^^^^               ^^^^^^^^^^^                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:31
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn client_handshake<'a>(mut client_ids: &'a Arc<Mutex<HashSet<u128>>>, mut rng: &'a Arc<Mutex<OsRng>>, write: &'a mut SplitSin...
[INFO] [stdout]    |                               ----^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:78
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn client_handshake<'a>(mut client_ids: &'a Arc<Mutex<HashSet<u128>>>, mut rng: &'a Arc<Mutex<OsRng>>, write: &'a mut SplitSin...
[INFO] [stdout]    |                                                                              ----^^^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:186:122
[INFO] [stdout]     |
[INFO] [stdout] 186 | ..., game_ids: &mut Arc<Mutex<HashMap<u128, Game>>>, mut rng: Arc<Mutex<OsRng>>, mut write: &mut SplitSink<WebSocketStream<TcpStrea...
[INFO] [stdout]     |                                                      ----^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:186:150
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...ashMap<u128, Game>>>, mut rng: Arc<Mutex<OsRng>>, mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, read: &mut Spl...
[INFO] [stdout]     |                                                      ----^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 | async fn send_message(mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, json_message: String) {
[INFO] [stdout]     |                       ----^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:213:28
[INFO] [stdout]     |
[INFO] [stdout] 213 | async fn send_message_2<T>(mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, message: T)
[INFO] [stdout]     |                            ----^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:31
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn client_handshake<'a>(mut client_ids: &'a Arc<Mutex<HashSet<u128>>>, mut rng: &'a Arc<Mutex<OsRng>>, write: &'a mut SplitSin...
[INFO] [stdout]    |                               ----^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:78
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn client_handshake<'a>(mut client_ids: &'a Arc<Mutex<HashSet<u128>>>, mut rng: &'a Arc<Mutex<OsRng>>, write: &'a mut SplitSin...
[INFO] [stdout]    |                                                                              ----^^^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:186:122
[INFO] [stdout]     |
[INFO] [stdout] 186 | ..., game_ids: &mut Arc<Mutex<HashMap<u128, Game>>>, mut rng: Arc<Mutex<OsRng>>, mut write: &mut SplitSink<WebSocketStream<TcpStrea...
[INFO] [stdout]     |                                                      ----^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:186:150
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...ashMap<u128, Game>>>, mut rng: Arc<Mutex<OsRng>>, mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, read: &mut Spl...
[INFO] [stdout]     |                                                      ----^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 | async fn send_message(mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, json_message: String) {
[INFO] [stdout]     |                       ----^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:213:28
[INFO] [stdout]     |
[INFO] [stdout] 213 | async fn send_message_2<T>(mut write: &mut SplitSink<WebSocketStream<TcpStream>, Message>, message: T)
[INFO] [stdout]     |                            ----^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `r#type` found for enum `MessageType` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:87:46
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/messages.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum MessageType {
[INFO] [stdout]    | -------------------- method `r#type` not found for this enum
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type_id() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `r#type` found for enum `MessageType` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:87:46
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/messages.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum MessageType {
[INFO] [stdout]    | -------------------- method `r#type` not found for this enum
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type_id() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:87:74
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                                       -- ^ expected type parameter `T`, found `Handshake`
[INFO] [stdout]    |                                                                       |
[INFO] [stdout]    |                                                                       arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `Handshake`
[INFO] [stdout] help: the type constructed contains `Handshake` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:87:71
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                                       ^^^-^
[INFO] [stdout]    |                                                                          |
[INFO] [stdout]    |                                                                          this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:87:74
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                                       -- ^ expected type parameter `T`, found `Handshake`
[INFO] [stdout]    |                                                                       |
[INFO] [stdout]    |                                                                       arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `Handshake`
[INFO] [stdout] help: the type constructed contains `Handshake` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:87:71
[INFO] [stdout]    |
[INFO] [stdout] 87 |         MessageType::Handshake(m) if message.type() == "Handshake" => Ok(m),
[INFO] [stdout]    |                                                                       ^^^-^
[INFO] [stdout]    |                                                                          |
[INFO] [stdout]    |                                                                          this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:88:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 88 -         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout] 88 +         MessageType::HandshakeOk(m) if T::type_id() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:88:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `HandshakeOk`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `HandshakeOk`
[INFO] [stdout] help: the type constructed contains `HandshakeOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:88:75
[INFO] [stdout]    |
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:88:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 88 -         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout] 88 +         MessageType::HandshakeOk(m) if T::type_id() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:88:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `HandshakeOk`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `HandshakeOk`
[INFO] [stdout] help: the type constructed contains `HandshakeOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:88:75
[INFO] [stdout]    |
[INFO] [stdout] 88 |         MessageType::HandshakeOk(m) if T::type_name() == "HandshakeOk" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                             ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 -         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout] 89 +         MessageType::StartNewTable(m) if T::type_id() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:89:82
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                                                               -- ^ expected type parameter `T`, found `StartNewTable`
[INFO] [stdout]    |                                                                               |
[INFO] [stdout]    |                                                                               arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `StartNewTable`
[INFO] [stdout] help: the type constructed contains `StartNewTable` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                                                               ^^^-^
[INFO] [stdout]    |                                                                                  |
[INFO] [stdout]    |                                                                                  this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                             ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 -         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout] 89 +         MessageType::StartNewTable(m) if T::type_id() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                               ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 90 -         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout] 90 +         MessageType::StartNewTableOk(m) if T::type_id() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:89:82
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                                                               -- ^ expected type parameter `T`, found `StartNewTable`
[INFO] [stdout]    |                                                                               |
[INFO] [stdout]    |                                                                               arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `StartNewTable`
[INFO] [stdout] help: the type constructed contains `StartNewTable` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 |         MessageType::StartNewTable(m) if T::type_name() == "StartNewTable" => Ok(m),
[INFO] [stdout]    |                                                                               ^^^-^
[INFO] [stdout]    |                                                                                  |
[INFO] [stdout]    |                                                                                  this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:90:86
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                                                                   -- ^ expected type parameter `T`, found `StartNewTableOk`
[INFO] [stdout]    |                                                                                   |
[INFO] [stdout]    |                                                                                   arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `StartNewTableOk`
[INFO] [stdout] help: the type constructed contains `StartNewTableOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:90:83
[INFO] [stdout]    |
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                                                                   ^^^-^
[INFO] [stdout]    |                                                                                      |
[INFO] [stdout]    |                                                                                      this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 91 -         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout] 91 +         MessageType::QueryTables(m) if T::type_id() == "QueryTables" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:91:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `QueryTables`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `QueryTables`
[INFO] [stdout] help: the type constructed contains `QueryTables` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:91:75
[INFO] [stdout]    |
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                               ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 90 -         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout] 90 +         MessageType::StartNewTableOk(m) if T::type_id() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:90:86
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                                                                   -- ^ expected type parameter `T`, found `StartNewTableOk`
[INFO] [stdout]    |                                                                                   |
[INFO] [stdout]    |                                                                                   arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `StartNewTableOk`
[INFO] [stdout] help: the type constructed contains `StartNewTableOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:90:83
[INFO] [stdout]    |
[INFO] [stdout] 90 |         MessageType::StartNewTableOk(m) if T::type_name() == "StartNewTableOk" => Ok(m),
[INFO] [stdout]    |                                                                                   ^^^-^
[INFO] [stdout]    |                                                                                      |
[INFO] [stdout]    |                                                                                      this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:92:42
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                          ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 92 -         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout] 92 +         MessageType::TablesInfo(m) if T::type_id() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:92:76
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                                                         -- ^ expected type parameter `T`, found `TablesInfo`
[INFO] [stdout]    |                                                                         |
[INFO] [stdout]    |                                                                         arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `TablesInfo`
[INFO] [stdout] help: the type constructed contains `TablesInfo` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:92:73
[INFO] [stdout]    |
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                                                         ^^^-^
[INFO] [stdout]    |                                                                            |
[INFO] [stdout]    |                                                                            this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:91:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 91 -         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout] 91 +         MessageType::QueryTables(m) if T::type_id() == "QueryTables" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:93:41
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                         ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 93 -         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout] 93 +         MessageType::JoinTable(m) if T::type_id() == "JoinTable" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:93:74
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                                                       -- ^ expected type parameter `T`, found `JoinTable`
[INFO] [stdout]    |                                                                       |
[INFO] [stdout]    |                                                                       arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `JoinTable`
[INFO] [stdout] help: the type constructed contains `JoinTable` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:93:71
[INFO] [stdout]    |
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                                                       ^^^-^
[INFO] [stdout]    |                                                                          |
[INFO] [stdout]    |                                                                          this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:91:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `QueryTables`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `QueryTables`
[INFO] [stdout] help: the type constructed contains `QueryTables` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:91:75
[INFO] [stdout]    |
[INFO] [stdout] 91 |         MessageType::QueryTables(m) if T::type_name() == "QueryTables" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 94 -         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout] 94 +         MessageType::JoinTableOk(m) if T::type_id() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:94:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `JoinTableOk`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `JoinTableOk`
[INFO] [stdout] help: the type constructed contains `JoinTableOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:94:75
[INFO] [stdout]    |
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:92:42
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                          ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 92 -         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout] 92 +         MessageType::TablesInfo(m) if T::type_id() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:92:76
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                                                         -- ^ expected type parameter `T`, found `TablesInfo`
[INFO] [stdout]    |                                                                         |
[INFO] [stdout]    |                                                                         arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `TablesInfo`
[INFO] [stdout] help: the type constructed contains `TablesInfo` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:92:73
[INFO] [stdout]    |
[INFO] [stdout] 92 |         MessageType::TablesInfo(m) if T::type_name() == "TablesInfo" => Ok(m),
[INFO] [stdout]    |                                                                         ^^^-^
[INFO] [stdout]    |                                                                            |
[INFO] [stdout]    |                                                                            this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/game.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:93:41
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                         ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 93 -         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout] 93 +         MessageType::JoinTable(m) if T::type_id() == "JoinTable" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:93:74
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                                                       -- ^ expected type parameter `T`, found `JoinTable`
[INFO] [stdout]    |                                                                       |
[INFO] [stdout]    |                                                                       arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `JoinTable`
[INFO] [stdout] help: the type constructed contains `JoinTable` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:93:71
[INFO] [stdout]    |
[INFO] [stdout] 93 |         MessageType::JoinTable(m) if T::type_name() == "JoinTable" => Ok(m),
[INFO] [stdout]    |                                                                       ^^^-^
[INFO] [stdout]    |                                                                          |
[INFO] [stdout]    |                                                                          this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `type_name` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/message_utils.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - function or associated item `type_name` not found for this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                           ^^^^^^^^^ function or associated item not found in `T`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `type_id` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 94 -         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout] 94 +         MessageType::JoinTableOk(m) if T::type_id() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/message_utils.rs:94:78
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) fn deserialize<T>(text: &str) -> Result<T, &'static str>
[INFO] [stdout]    |                           - expected this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                                                           -- ^ expected type parameter `T`, found `JoinTableOk`
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `T`
[INFO] [stdout]                       found struct `JoinTableOk`
[INFO] [stdout] help: the type constructed contains `JoinTableOk` due to the type of the argument passed
[INFO] [stdout]   --> src/message_utils.rs:94:75
[INFO] [stdout]    |
[INFO] [stdout] 94 |         MessageType::JoinTableOk(m) if T::type_name() == "JoinTableOk" => Ok(m),
[INFO] [stdout]    |                                                                           ^^^-^
[INFO] [stdout]    |                                                                              |
[INFO] [stdout]    |                                                                              this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/game.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:342:17
[INFO] [stdout]     |
[INFO] [stdout] 342 |             let mut player = self.player_id_to_player.get_mut(&player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_player` is never read
[INFO] [stdout]    --> src/game.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |         prev_player = player_id;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |             let mut player: &mut Player = self.player_id_to_player.get_mut(player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/game.rs:499:14
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for (i, (pot, players)) in self.pots.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dealing_hold_cards`
[INFO] [stdout]    --> src/game.rs:753:135
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...PlayerId>, is_dealing_hold_cards: bool) -> bool{
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dealing_hold_cards`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:833:13
[INFO] [stdout]     |
[INFO] [stdout] 833 |         let mut player = self.player_id_to_player.get_mut(&player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:892:28
[INFO] [stdout]     |
[INFO] [stdout] 892 |             .for_each(|(_, mut hash_set): (_, &mut HashSet<PlayerId>) | {
[INFO] [stdout]     |                            ----^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:342:17
[INFO] [stdout]     |
[INFO] [stdout] 342 |             let mut player = self.player_id_to_player.get_mut(&player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_player` is never read
[INFO] [stdout]    --> src/game.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |         prev_player = player_id;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |             let mut player: &mut Player = self.player_id_to_player.get_mut(player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/game.rs:499:14
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for (i, (pot, players)) in self.pots.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dealing_hold_cards`
[INFO] [stdout]    --> src/game.rs:753:135
[INFO] [stdout]     |
[INFO] [stdout] 753 | ...PlayerId>, is_dealing_hold_cards: bool) -> bool{
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dealing_hold_cards`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:833:13
[INFO] [stdout]     |
[INFO] [stdout] 833 |         let mut player = self.player_id_to_player.get_mut(&player_id).expect(PLAYER_NOT_FOUND_ERROR);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:892:28
[INFO] [stdout]     |
[INFO] [stdout] 892 |             .for_each(|(_, mut hash_set): (_, &mut HashSet<PlayerId>) | {
[INFO] [stdout]     |                            ----^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `texas-holdem` (bin "texas-holdem") due to 17 previous errors; 27 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `texas-holdem` (bin "texas-holdem" test) due to 17 previous errors; 27 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6fdf5b25e174d1634e21623b4db320bad8d0d6d9d331e47d78447947af4c02d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fdf5b25e174d1634e21623b4db320bad8d0d6d9d331e47d78447947af4c02d8", kill_on_drop: false }`
[INFO] [stdout] 6fdf5b25e174d1634e21623b4db320bad8d0d6d9d331e47d78447947af4c02d8
