[INFO] cloning repository https://github.com/mmai/webtarot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mmai/webtarot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmmai%2Fwebtarot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmmai%2Fwebtarot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 568ae6ab4a942f6323b0fb57cbe050e33c1dab01
[INFO] checking mmai/webtarot against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmmai%2Fwebtarot" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mmai/webtarot
[INFO] finished tweaking git repo https://github.com/mmai/webtarot
[INFO] tweaked toml for git repo https://github.com/mmai/webtarot written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mmai/webtarot on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mmai/webtarot 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" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/mmai/webgame`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded implicit-clone-derive v0.1.2
[INFO] [stderr]   Downloaded yew v0.23.0
[INFO] [stderr]   Downloaded tokise v0.2.0
[INFO] [stderr]   Downloaded implicit-clone v0.6.0
[INFO] [stderr]   Downloaded strum v0.19.5
[INFO] [stderr]   Downloaded strum_macros v0.19.4
[INFO] [stderr]   Downloaded yew-macro v0.23.0
[INFO] [stderr]   Downloaded gettext v0.4.0
[INFO] [stderr]   Downloaded tr v0.1.11
[INFO] [stderr]   Downloaded rust-embed-utils v7.8.1
[INFO] [stderr]   Downloaded rust-embed-impl v6.8.1
[INFO] [stderr]   Downloaded i18n-embed v0.13.9
[INFO] [stderr]   Downloaded sized-chunks v0.5.3
[INFO] [stderr]   Downloaded rand_xoshiro v0.4.0
[INFO] [stderr]   Downloaded im-rc v14.3.0
[INFO] [stderr]   Downloaded rust-embed v6.8.1
[INFO] [stderr]   Downloaded warp v0.3.7
[INFO] [stderr]   Downloaded listenfd v0.3.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 75834b76a998e4fb62218bc927f7681af0ae8bbd80b924689745147e0030cc1f
[INFO] running `Command { std: "docker" "start" "-a" "75834b76a998e4fb62218bc927f7681af0ae8bbd80b924689745147e0030cc1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "75834b76a998e4fb62218bc927f7681af0ae8bbd80b924689745147e0030cc1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "75834b76a998e4fb62218bc927f7681af0ae8bbd80b924689745147e0030cc1f", kill_on_drop: false }`
[INFO] [stdout] 75834b76a998e4fb62218bc927f7681af0ae8bbd80b924689745147e0030cc1f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 304408f4955d273631f61b4653401f60c785c2908c7d3aff9a5a3c1b2d4bdca6
[INFO] running `Command { std: "docker" "start" "-a" "304408f4955d273631f61b4653401f60c785c2908c7d3aff9a5a3c1b2d4bdca6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.114
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling wasm-bindgen v0.2.114
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]     Checking strum v0.19.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]     Checking input_buffer v0.3.1
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking openssl-sys v0.9.112
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking openssl v0.10.76
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking unic-langid-impl v0.9.6
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking unic-langid v0.9.6
[INFO] [stderr]    Compiling rust-embed-utils v7.8.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]     Checking headers v0.3.9
[INFO] [stderr]    Compiling strum_macros v0.19.4
[INFO] [stderr]     Checking type-map v0.5.1
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking env_logger v0.8.4
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]     Checking webgame_protocol v0.8.0 (https://github.com/mmai/webgame?tag=v0.8.0#95713474)
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]    Compiling rust-embed-impl v6.8.1
[INFO] [stderr]     Checking gettext v0.4.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling implicit-clone-derive v0.1.2
[INFO] [stderr]     Checking bitmaps v2.1.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]     Checking pinned v0.1.0
[INFO] [stderr]    Compiling find-crate v0.6.3
[INFO] [stderr]    Compiling im-rc v14.3.0
[INFO] [stderr]     Checking rust-embed v6.8.1
[INFO] [stderr]     Checking implicit-clone v0.6.0
[INFO] [stderr]     Checking h2 v0.2.7
[INFO] [stderr]    Compiling i18n-config v0.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tr v0.1.11
[INFO] [stderr]     Checking pretty_env_logger v0.4.0
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking intl-memoizer v0.5.3
[INFO] [stderr]    Compiling weblog-proc-macro v0.3.0
[INFO] [stderr]     Checking fluent-langneg v0.13.1
[INFO] [stderr]     Checking rand_xoshiro v0.4.0
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking listenfd v0.3.5
[INFO] [stderr]     Checking sized-chunks v0.5.3
[INFO] [stderr]     Checking http-body v0.3.1
[INFO] [stderr]    Compiling yew-macro v0.23.0
[INFO] [stderr]     Checking httpdate v0.3.2
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr]    Compiling gloo-worker-macros v0.1.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling i18n-embed-impl v0.8.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking native-tls v0.2.18
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking js-sys v0.3.91
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking tarotgame v0.6.7 (/opt/rustwide/workdir/tarotgame)
[INFO] [stderr]     Checking tungstenite v0.11.1
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tokise v0.2.0
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]  --> tarotgame/src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(feature = "use_bench", feature(test))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]   --> tarotgame/src/lib.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(feature = "use_bench")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]    --> tarotgame/src/cards.rs:945:7
[INFO] [stdout]     |
[INFO] [stdout] 945 | #[cfg(feature = "use_bench")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]    --> tarotgame/src/deal.rs:983:7
[INFO] [stdout]     |
[INFO] [stdout] 983 | #[cfg(feature = "use_bench")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]  --> tarotgame/src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(feature = "use_bench", feature(test))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]   --> tarotgame/src/lib.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(feature = "use_bench")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]    --> tarotgame/src/cards.rs:945:7
[INFO] [stdout]     |
[INFO] [stdout] 945 | #[cfg(feature = "use_bench")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stdout]    --> tarotgame/src/deal.rs:983:7
[INFO] [stdout]     |
[INFO] [stdout] 983 | #[cfg(feature = "use_bench")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking webtarot_protocol v0.8.0 (/opt/rustwide/workdir/webtarot_protocol)
[INFO] [stdout] warning: function `test_next` is never used
[INFO] [stdout]    --> tarotgame/src/pos.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn test_next() {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deal_hands`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:674:33
[INFO] [stdout]     |
[INFO] [stdout] 674 |     use tarotgame::{bid, cards, deal_hands, deal_seeded_hands};
[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 variable: `player_id`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 |             for (player_id, player) in &self.players {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auction`
[INFO] [stdout]   --> webtarot_protocol/src/deal.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 |             Deal::Bidding(ref auction) => {
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_id`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 |             for (player_id, player) in &self.players {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking webtarot_bot v0.5.0 (/opt/rustwide/workdir/webtarot_bot)
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:679:22
[INFO] [stdout]     |
[INFO] [stdout] 679 |         fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:685:30
[INFO] [stdout]     |
[INFO] [stdout] 685 |         fn notify(&mut self, event: &(PlayEvent, TarotGameState)) {}
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hands_deal1`
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:730:13
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let hands_deal1 = game.deal.hands();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hands_deal1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[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: `UnixStream`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::os::unix::net::{UnixStream,UnixListener};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deal_seeded_hands`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     deal_seeded_hands,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlayEvent`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |     MakeDogCommand, Message, PlayCommand, PlayEvent, PlayerAction, PlayerRole, TarotVariant, Turn,
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[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: `UnixStream`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::os::unix::net::{UnixStream,UnixListener};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deal_seeded_hands`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     deal_seeded_hands,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlayEvent`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |     MakeDogCommand, Message, PlayCommand, PlayEvent, PlayerAction, PlayerRole, TarotVariant, Turn,
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auction`
[INFO] [stdout]   --> webtarot_protocol/src/deal.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 |             Deal::Bidding(ref auction) => {
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_protocol/src/game.rs:875:9
[INFO] [stdout]     |
[INFO] [stdout] 875 |         game.make_dog(id0, dog, false);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 875 |         let _ = game.make_dog(id0, dog, false);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> webtarot_protocol/src/game.rs:1551:9
[INFO] [stdout]      |
[INFO] [stdout] 1551 |         game.make_dog(id0, dog, false); // keep initial dog
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1551 |         let _ = game.make_dog(id0, dog, false); // keep initial dog
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nicknamer`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nicknamer`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pstat`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     .map(|(idx, pstat)| idx);
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:334:29
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     .find(|(idx, pstat)| pstat.played.has(king))
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_event`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pstat`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     .map(|(idx, pstat)| idx);
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:334:29
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     .find(|(idx, pstat)| pstat.played.has(king))
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_event`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[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: unused variable: `vingtetun`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mylowest`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1102:25
[INFO] [stdout]      |
[INFO] [stdout] 1102 |             if let Some(mylowest) = hand.suit_lowest_over_card(Suit::Trump, winner_card) {
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mylowest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1316:24
[INFO] [stdout]      |
[INFO] [stdout] 1316 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[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: method `set_test_state_from_snapshot` is never used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Player {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_test_state_from_snapshot(&mut self, game_state: GameStateSnapshot) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestInOut` is never constructed
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1308:12
[INFO] [stdout]      |
[INFO] [stdout] 1308 | pub struct TestInOut {}
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vingtetun`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mylowest`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1102:25
[INFO] [stdout]      |
[INFO] [stdout] 1102 |             if let Some(mylowest) = hand.suit_lowest_over_card(Suit::Trump, winner_card) {
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mylowest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bot`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1316:24
[INFO] [stdout]      |
[INFO] [stdout] 1316 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_test_state_from_snapshot` is never used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Player {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_test_state_from_snapshot(&mut self, game_state: GameStateSnapshot) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.in_out
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 | /             self.stats
[INFO] [stdout] 360 | |                 .players
[INFO] [stdout] 361 | |                 .iter_mut()
[INFO] [stdout] 362 | |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     | |________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |             let _ = self.stats
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Iterator::map` call that discard the iterator's values
[INFO] [stdout]    --> webtarot_bot/src/player.rs:362:18
[INFO] [stdout]     |
[INFO] [stdout] 362 |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |                  ^^^^--------------------------------------------------^
[INFO] [stdout]     |                  |   |
[INFO] [stdout]     |                  |   this function returns `()`, which is likely not what you wanted
[INFO] [stdout]     |                  |   called `Iterator::map` with callable that returns `()`
[INFO] [stdout]     |                  after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
[INFO] [stdout]     = note: `#[warn(map_unit_fn)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[INFO] [stdout] 362 -                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout] 362 +                 .for_each(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 385 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 386 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 384 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     let _ = self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:403:21
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:404:21
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 let _ = self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:425:21
[INFO] [stdout]     |
[INFO] [stdout] 425 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 426 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 427 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:455:21
[INFO] [stdout]     |
[INFO] [stdout] 455 | /                     self.in_out
[INFO] [stdout] 456 | |                         .send(&Command::GamePlay(GamePlayCommand::Bid(BidCommand {
[INFO] [stdout] 457 | |                             target,
[INFO] [stdout] 458 | |                             slam: false,
[INFO] [stdout] 459 | |                         })));
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 455 |                     let _ = self.in_out
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 | /                 self.in_out
[INFO] [stdout] 466 | |                     .send(&Command::GamePlay(GamePlayCommand::CallKing(
[INFO] [stdout] 467 | |                         CallKingCommand {
[INFO] [stdout] 468 | |                             card: self.call_king(),
[INFO] [stdout] 469 | |                         },
[INFO] [stdout] 470 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 self.in_out
[INFO] [stdout] 478 | |                     .send(&Command::GamePlay(GamePlayCommand::MakeDog(
[INFO] [stdout] 479 | |                         MakeDogCommand {
[INFO] [stdout] 480 | |                             cards: dog,
[INFO] [stdout] 481 | |                             slam: false,
[INFO] [stdout] 482 | |                         },
[INFO] [stdout] 483 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:509:29
[INFO] [stdout]     |
[INFO] [stdout] 509 | / ...                   self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout] 510 | | ...                       PlayCommand { card },
[INFO] [stdout] 511 | | ...                   )));
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 509 |                             let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> webtarot_bot/src/player.rs:641:14
[INFO] [stdout]     |
[INFO] [stdout] 641 |             .into_iter()
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 641 +             .iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 640 -         let mut candidates: Vec<Card> = suits
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 640 +         let mut candidates: Vec<Card> = IntoIterator::into_iter(suits)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         self.socket.close(None);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let _ = self.socket.close(None);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.in_out
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 | /             self.stats
[INFO] [stdout] 360 | |                 .players
[INFO] [stdout] 361 | |                 .iter_mut()
[INFO] [stdout] 362 | |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     | |________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |             let _ = self.stats
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Iterator::map` call that discard the iterator's values
[INFO] [stdout]    --> webtarot_bot/src/player.rs:362:18
[INFO] [stdout]     |
[INFO] [stdout] 362 |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |                  ^^^^--------------------------------------------------^
[INFO] [stdout]     |                  |   |
[INFO] [stdout]     |                  |   this function returns `()`, which is likely not what you wanted
[INFO] [stdout]     |                  |   called `Iterator::map` with callable that returns `()`
[INFO] [stdout]     |                  after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
[INFO] [stdout]     = note: `#[warn(map_unit_fn)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[INFO] [stdout] 362 -                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout] 362 +                 .for_each(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 385 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 386 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 384 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     let _ = self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:403:21
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:404:21
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 let _ = self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:425:21
[INFO] [stdout]     |
[INFO] [stdout] 425 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 426 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 427 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:455:21
[INFO] [stdout]     |
[INFO] [stdout] 455 | /                     self.in_out
[INFO] [stdout] 456 | |                         .send(&Command::GamePlay(GamePlayCommand::Bid(BidCommand {
[INFO] [stdout] 457 | |                             target,
[INFO] [stdout] 458 | |                             slam: false,
[INFO] [stdout] 459 | |                         })));
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 455 |                     let _ = self.in_out
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 | /                 self.in_out
[INFO] [stdout] 466 | |                     .send(&Command::GamePlay(GamePlayCommand::CallKing(
[INFO] [stdout] 467 | |                         CallKingCommand {
[INFO] [stdout] 468 | |                             card: self.call_king(),
[INFO] [stdout] 469 | |                         },
[INFO] [stdout] 470 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 self.in_out
[INFO] [stdout] 478 | |                     .send(&Command::GamePlay(GamePlayCommand::MakeDog(
[INFO] [stdout] 479 | |                         MakeDogCommand {
[INFO] [stdout] 480 | |                             cards: dog,
[INFO] [stdout] 481 | |                             slam: false,
[INFO] [stdout] 482 | |                         },
[INFO] [stdout] 483 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:509:29
[INFO] [stdout]     |
[INFO] [stdout] 509 | / ...                   self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout] 510 | | ...                       PlayCommand { card },
[INFO] [stdout] 511 | | ...                   )));
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 509 |                             let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> webtarot_bot/src/player.rs:641:14
[INFO] [stdout]     |
[INFO] [stdout] 641 |             .into_iter()
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 641 +             .iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 640 -         let mut candidates: Vec<Card> = suits
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 640 +         let mut candidates: Vec<Card> = IntoIterator::into_iter(suits)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         self.socket.close(None);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let _ = self.socket.close(None);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hyper v0.13.10
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[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: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deal_seeded_hands`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     deal_seeded_hands,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlayEvent`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |     MakeDogCommand, Message, PlayCommand, PlayEvent, PlayerAction, PlayerRole, TarotVariant, Turn,
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::connect`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tungstenite::connect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::protocol::WebSocket`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tungstenite::protocol::WebSocket;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Result`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde_json::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stdout]    |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::player`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::player;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Result`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stdout]   |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stdout]   --> webtarot_bot/src/simulator.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::player`
[INFO] [stdout]   --> webtarot_bot/src/simulator.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::player;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnixStream`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::os::unix::net::{UnixStream,UnixListener};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude::*`
[INFO] [stdout]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[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: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deal_seeded_hands`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     deal_seeded_hands,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlayEvent`
[INFO] [stdout]   --> webtarot_bot/src/player.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |     MakeDogCommand, Message, PlayCommand, PlayEvent, PlayerAction, PlayerRole, TarotVariant, Turn,
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::connect`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tungstenite::connect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::protocol::WebSocket`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tungstenite::protocol::WebSocket;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> webtarot_bot/src/player_factory.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Result`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde_json::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stdout]    |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::player`
[INFO] [stdout]   --> webtarot_bot/src/player_factory.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::player;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use url::Url;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Result`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stdout]  --> webtarot_bot/src/simulator.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stdout]   |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stdout]   --> webtarot_bot/src/simulator.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::player`
[INFO] [stdout]   --> webtarot_bot/src/simulator.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::player;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stdout]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tungstenite::stream::Stream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnixStream`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::os::unix::net::{UnixStream,UnixListener};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> webtarot_bot/src/explorer.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .find(|(i, n)| **n < 255)
[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 import: `rayon::prelude`
[INFO] [stdout]  --> webtarot_bot/src/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> webtarot_bot/src/explorer.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |         .find(|(i, n)| **n < 255)
[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: `pstat`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     .map(|(idx, pstat)| idx);
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:334:29
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     .find(|(idx, pstat)| pstat.played.has(king))
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_event`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pstat`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     .map(|(idx, pstat)| idx);
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:334:29
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     .find(|(idx, pstat)| pstat.played.has(king))
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_event`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[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: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vingtetun`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mylowest`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1102:25
[INFO] [stdout]      |
[INFO] [stdout] 1102 |             if let Some(mylowest) = hand.suit_lowest_over_card(Suit::Trump, winner_card) {
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mylowest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1316:24
[INFO] [stdout]      |
[INFO] [stdout] 1316 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[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: unused variable: `nicknamer`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vingtetun`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mylowest`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1102:25
[INFO] [stdout]      |
[INFO] [stdout] 1102 |             if let Some(mylowest) = hand.suit_lowest_over_card(Suit::Trump, winner_card) {
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mylowest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bot`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> webtarot_bot/src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let json = matches.value_of("json").unwrap_or("");
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_test_state_from_snapshot` is never used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Player {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_test_state_from_snapshot(&mut self, game_state: GameStateSnapshot) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestInOut` is never constructed
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1308:12
[INFO] [stdout]      |
[INFO] [stdout] 1308 | pub struct TestInOut {}
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1316:24
[INFO] [stdout]      |
[INFO] [stdout] 1316 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nicknamer`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         self.socket.close(None);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let _ = self.socket.close(None);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.in_out
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 | /             self.stats
[INFO] [stdout] 360 | |                 .players
[INFO] [stdout] 361 | |                 .iter_mut()
[INFO] [stdout] 362 | |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     | |________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |             let _ = self.stats
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Iterator::map` call that discard the iterator's values
[INFO] [stdout]    --> webtarot_bot/src/player.rs:362:18
[INFO] [stdout]     |
[INFO] [stdout] 362 |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |                  ^^^^--------------------------------------------------^
[INFO] [stdout]     |                  |   |
[INFO] [stdout]     |                  |   this function returns `()`, which is likely not what you wanted
[INFO] [stdout]     |                  |   called `Iterator::map` with callable that returns `()`
[INFO] [stdout]     |                  after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
[INFO] [stdout]     = note: `#[warn(map_unit_fn)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[INFO] [stdout] 362 -                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout] 362 +                 .for_each(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> webtarot_bot/src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let json = matches.value_of("json").unwrap_or("");
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 385 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 386 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 384 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     let _ = self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_test_state_from_snapshot` is never used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Player {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_test_state_from_snapshot(&mut self, game_state: GameStateSnapshot) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:403:21
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:404:21
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 let _ = self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:425:21
[INFO] [stdout]     |
[INFO] [stdout] 425 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 426 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 427 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:455:21
[INFO] [stdout]     |
[INFO] [stdout] 455 | /                     self.in_out
[INFO] [stdout] 456 | |                         .send(&Command::GamePlay(GamePlayCommand::Bid(BidCommand {
[INFO] [stdout] 457 | |                             target,
[INFO] [stdout] 458 | |                             slam: false,
[INFO] [stdout] 459 | |                         })));
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 455 |                     let _ = self.in_out
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 | /                 self.in_out
[INFO] [stdout] 466 | |                     .send(&Command::GamePlay(GamePlayCommand::CallKing(
[INFO] [stdout] 467 | |                         CallKingCommand {
[INFO] [stdout] 468 | |                             card: self.call_king(),
[INFO] [stdout] 469 | |                         },
[INFO] [stdout] 470 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 self.in_out
[INFO] [stdout] 478 | |                     .send(&Command::GamePlay(GamePlayCommand::MakeDog(
[INFO] [stdout] 479 | |                         MakeDogCommand {
[INFO] [stdout] 480 | |                             cards: dog,
[INFO] [stdout] 481 | |                             slam: false,
[INFO] [stdout] 482 | |                         },
[INFO] [stdout] 483 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:509:29
[INFO] [stdout]     |
[INFO] [stdout] 509 | / ...                   self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout] 510 | | ...                       PlayCommand { card },
[INFO] [stdout] 511 | | ...                   )));
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 509 |                             let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> webtarot_bot/src/player.rs:641:14
[INFO] [stdout]     |
[INFO] [stdout] 641 |             .into_iter()
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 641 +             .iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 640 -         let mut candidates: Vec<Card> = suits
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 640 +         let mut candidates: Vec<Card> = IntoIterator::into_iter(suits)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         self.socket.close(None);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let _ = self.socket.close(None);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.in_out
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 | /             self.stats
[INFO] [stdout] 360 | |                 .players
[INFO] [stdout] 361 | |                 .iter_mut()
[INFO] [stdout] 362 | |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     | |________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |             let _ = self.stats
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Iterator::map` call that discard the iterator's values
[INFO] [stdout]    --> webtarot_bot/src/player.rs:362:18
[INFO] [stdout]     |
[INFO] [stdout] 362 |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |                  ^^^^--------------------------------------------------^
[INFO] [stdout]     |                  |   |
[INFO] [stdout]     |                  |   this function returns `()`, which is likely not what you wanted
[INFO] [stdout]     |                  |   called `Iterator::map` with callable that returns `()`
[INFO] [stdout]     |                  after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
[INFO] [stdout]     = note: `#[warn(map_unit_fn)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[INFO] [stdout] 362 -                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout] 362 +                 .for_each(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 385 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 386 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 384 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 393 |                     let _ = self.in_out.send(&Command::NewGame(variant));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 401 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:402:21
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:403:21
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 403 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:404:21
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 404 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 let _ = self.in_out.send(&Command::MarkReady);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:425:21
[INFO] [stdout]     |
[INFO] [stdout] 425 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout] 426 | |                         join_code: self.join_code.clone(),
[INFO] [stdout] 427 | |                     }));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:455:21
[INFO] [stdout]     |
[INFO] [stdout] 455 | /                     self.in_out
[INFO] [stdout] 456 | |                         .send(&Command::GamePlay(GamePlayCommand::Bid(BidCommand {
[INFO] [stdout] 457 | |                             target,
[INFO] [stdout] 458 | |                             slam: false,
[INFO] [stdout] 459 | |                         })));
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 455 |                     let _ = self.in_out
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 461 |                     let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 | /                 self.in_out
[INFO] [stdout] 466 | |                     .send(&Command::GamePlay(GamePlayCommand::CallKing(
[INFO] [stdout] 467 | |                         CallKingCommand {
[INFO] [stdout] 468 | |                             card: self.call_king(),
[INFO] [stdout] 469 | |                         },
[INFO] [stdout] 470 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 | /                 self.in_out
[INFO] [stdout] 478 | |                     .send(&Command::GamePlay(GamePlayCommand::MakeDog(
[INFO] [stdout] 479 | |                         MakeDogCommand {
[INFO] [stdout] 480 | |                             cards: dog,
[INFO] [stdout] 481 | |                             slam: false,
[INFO] [stdout] 482 | |                         },
[INFO] [stdout] 483 | |                     )));
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 let _ = self.in_out
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:509:29
[INFO] [stdout]     |
[INFO] [stdout] 509 | / ...                   self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout] 510 | | ...                       PlayCommand { card },
[INFO] [stdout] 511 | | ...                   )));
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 509 |                             let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> webtarot_bot/src/player.rs:641:14
[INFO] [stdout]     |
[INFO] [stdout] 641 |             .into_iter()
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 641 +             .iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 640 -         let mut candidates: Vec<Card> = suits
[INFO] [stdout] 641 -             .into_iter()
[INFO] [stdout] 640 +         let mut candidates: Vec<Card> = IntoIterator::into_iter(suits)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking warp v0.3.7
[INFO] [stderr]     Checking web-sys v0.3.91
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.64
[INFO] [stderr]     Checking serde-wasm-bindgen v0.6.5
[INFO] [stderr]     Checking gloo-timers v0.3.0
[INFO] [stderr]     Checking gloo-timers v0.2.6
[INFO] [stderr]     Checking webgame_server v0.8.0 (https://github.com/mmai/webgame?tag=v0.8.0#95713474)
[INFO] [stderr]     Checking webtarot_server v0.8.0 (/opt/rustwide/workdir/webtarot_server)
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> webtarot_server/src/dispatcher.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         drop(game_state_handle);
[INFO] [stdout]     |         ^^^^^-----------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 153 -         drop(game_state_handle);
[INFO] [stdout] 153 +         let _ = game_state_handle;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> webtarot_server/src/dispatcher.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         drop(game_state_handle);
[INFO] [stdout]     |         ^^^^^-----------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 153 -         drop(game_state_handle);
[INFO] [stdout] 153 +         let _ = game_state_handle;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> webtarot_server/src/dispatcher.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |         drop(game_state_handle);
[INFO] [stdout]     |         ^^^^^-----------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 160 -         drop(game_state_handle);
[INFO] [stdout] 160 +         let _ = game_state_handle;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> webtarot_server/src/dispatcher.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |         drop(game_state_handle);
[INFO] [stdout]     |         ^^^^^-----------------^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 160 -         drop(game_state_handle);
[INFO] [stdout] 160 +         let _ = game_state_handle;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking gloo-utils v0.2.0
[INFO] [stderr]     Checking gloo-events v0.2.0
[INFO] [stderr]     Checking gloo-render v0.2.0
[INFO] [stderr]     Checking gloo-dialogs v0.2.0
[INFO] [stderr]     Checking gloo-utils v0.1.7
[INFO] [stderr]     Checking i18n-embed v0.13.9
[INFO] [stderr]     Checking weblog v0.3.0
[INFO] [stderr]     Checking gloo-file v0.3.0
[INFO] [stderr]     Checking gloo-net v0.5.0
[INFO] [stderr]     Checking gloo-storage v0.3.0
[INFO] [stderr]     Checking gloo-history v0.2.2
[INFO] [stderr]     Checking gloo-worker v0.5.0
[INFO] [stderr]     Checking gloo-console v0.3.0
[INFO] [stderr]     Checking gloo-storage v0.2.2
[INFO] [stderr]     Checking gloo v0.11.0
[INFO] [stderr]     Checking yew v0.23.0
[INFO] [stderr]     Checking webtarot_client v0.8.0 (/opt/rustwide/workdir/webtarot_client)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.43s
[INFO] running `Command { std: "docker" "inspect" "304408f4955d273631f61b4653401f60c785c2908c7d3aff9a5a3c1b2d4bdca6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "304408f4955d273631f61b4653401f60c785c2908c7d3aff9a5a3c1b2d4bdca6", kill_on_drop: false }`
[INFO] [stdout] 304408f4955d273631f61b4653401f60c785c2908c7d3aff9a5a3c1b2d4bdca6
