[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] testing mmai/webtarot against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmmai%2Fwebtarot" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mmai/webtarot on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/mmai/webgame`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded yew v0.23.0
[INFO] [stderr]   Downloaded yew-macro v0.23.0
[INFO] [stderr]   Downloaded wee_alloc v0.4.5
[INFO] [stderr]   Downloaded weblog v0.3.0
[INFO] [stderr]   Downloaded weblog-proc-macro v0.3.0
[INFO] [stderr]   Downloaded tr v0.1.11
[INFO] [stderr]   Downloaded gettext v0.4.0
[INFO] [stderr]   Downloaded tungstenite v0.11.1
[INFO] [stderr]   Downloaded im-rc v14.3.0
[INFO] [stderr]   Downloaded sized-chunks v0.5.3
[INFO] [stderr]   Downloaded input_buffer v0.3.1
[INFO] [stderr]   Downloaded rand_xoshiro v0.4.0
[INFO] [stderr]   Downloaded i18n-embed v0.13.9
[INFO] [stderr]   Downloaded hyper v0.13.10
[INFO] [stderr]   Downloaded listenfd v0.3.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 026d2f5e94c8abd981cfd598243ea319a394cb6246a7366344e12f1d6168ac11
[INFO] running `Command { std: "docker" "start" "-a" "026d2f5e94c8abd981cfd598243ea319a394cb6246a7366344e12f1d6168ac11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "026d2f5e94c8abd981cfd598243ea319a394cb6246a7366344e12f1d6168ac11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "026d2f5e94c8abd981cfd598243ea319a394cb6246a7366344e12f1d6168ac11", kill_on_drop: false }`
[INFO] [stdout] 026d2f5e94c8abd981cfd598243ea319a394cb6246a7366344e12f1d6168ac11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b13da5a7d0dad1a2689cdb605a2faf8feca2d22b55007dda602a901fe02604bb
[INFO] running `Command { std: "docker" "start" "-a" "b13da5a7d0dad1a2689cdb605a2faf8feca2d22b55007dda602a901fe02604bb", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[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 wasm-bindgen v0.2.114
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling strum v0.19.5
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-korean v1.20141219.5
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling pin-project-lite v0.1.12
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling sha-1 v0.9.8
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling encoding v0.2.33
[INFO] [stderr]    Compiling rust-embed-utils v7.8.1
[INFO] [stderr]    Compiling input_buffer v0.3.1
[INFO] [stderr]    Compiling headers-core v0.2.0
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling humantime v2.3.0
[INFO] [stderr]    Compiling futures v0.1.31
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling gettext v0.4.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling net2 v0.2.39
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tokio v0.2.25
[INFO] [stderr]    Compiling tokio-executor v0.1.10
[INFO] [stderr]    Compiling headers v0.3.9
[INFO] [stderr]    Compiling bitmaps v2.1.0
[INFO] [stderr]    Compiling im-rc v14.3.0
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling tokio-timer v0.2.13
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_xoshiro v0.4.0
[INFO] [stderr]    Compiling tr v0.1.11
[INFO] [stderr]    Compiling listenfd v0.3.5
[INFO] [stderr]    Compiling socket2 v0.3.19
[INFO] [stderr]    Compiling http-body v0.3.1
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling sized-chunks v0.5.3
[INFO] [stderr]    Compiling httpdate v0.3.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling strum_macros v0.19.4
[INFO] [stderr]    Compiling weblog-proc-macro v0.3.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling tokio-util v0.3.1
[INFO] [stderr]    Compiling pretty_env_logger v0.4.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling gloo-worker-macros v0.1.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling rust-embed-impl v6.8.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling implicit-clone-derive v0.1.2
[INFO] [stderr]    Compiling rust-embed v6.8.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling yew-macro v0.23.0
[INFO] [stderr]    Compiling implicit-clone v0.6.0
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling h2 v0.2.7
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling pinned v0.1.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling unic-langid-impl v0.9.6
[INFO] [stderr]    Compiling tarotgame v0.6.7 (/opt/rustwide/workdir/tarotgame)
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling js-sys v0.3.91
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[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]    Compiling unic-langid v0.9.6
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling fluent-langneg v0.13.1
[INFO] [stderr]    Compiling intl-memoizer v0.5.3
[INFO] [stderr]    Compiling i18n-config v0.4.8
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling find-crate v0.6.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tungstenite v0.21.0
[INFO] [stderr]    Compiling tungstenite v0.11.1
[INFO] [stderr]    Compiling i18n-embed-impl v0.8.4
[INFO] [stderr]    Compiling webgame_protocol v0.8.0 (https://github.com/mmai/webgame?tag=v0.8.0#95713474)
[INFO] [stderr]    Compiling tokise v0.2.0
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling webtarot_protocol v0.8.0 (/opt/rustwide/workdir/webtarot_protocol)
[INFO] [stderr]    Compiling tokio-tungstenite v0.21.0
[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] [stderr]    Compiling webtarot_bot v0.5.0 (/opt/rustwide/workdir/webtarot_bot)
[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: `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: `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: 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 `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]    Compiling 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: `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 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: 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: 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: `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 `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]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling web-sys v0.3.91
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.64
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling gloo-timers v0.3.0
[INFO] [stderr]    Compiling gloo-timers v0.2.6
[INFO] [stderr]    Compiling warp v0.3.7
[INFO] [stderr]    Compiling webgame_server v0.8.0 (https://github.com/mmai/webgame?tag=v0.8.0#95713474)
[INFO] [stderr]    Compiling 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: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]    Compiling gloo-utils v0.2.0
[INFO] [stderr]    Compiling gloo-events v0.2.0
[INFO] [stderr]    Compiling gloo-render v0.2.0
[INFO] [stderr]    Compiling gloo-dialogs v0.2.0
[INFO] [stderr]    Compiling gloo-utils v0.1.7
[INFO] [stderr]    Compiling weblog v0.3.0
[INFO] [stderr]    Compiling i18n-embed v0.13.9
[INFO] [stderr]    Compiling gloo-storage v0.2.2
[INFO] [stderr]    Compiling gloo-worker v0.5.0
[INFO] [stderr]    Compiling gloo-storage v0.3.0
[INFO] [stderr]    Compiling gloo-net v0.5.0
[INFO] [stderr]    Compiling gloo-console v0.3.0
[INFO] [stderr]    Compiling gloo-history v0.2.2
[INFO] [stderr]    Compiling gloo-file v0.3.0
[INFO] [stderr]    Compiling gloo v0.11.0
[INFO] [stderr]    Compiling yew v0.23.0
[INFO] [stderr]    Compiling webtarot_client v0.8.0 (/opt/rustwide/workdir/webtarot_client)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s
[INFO] running `Command { std: "docker" "inspect" "b13da5a7d0dad1a2689cdb605a2faf8feca2d22b55007dda602a901fe02604bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b13da5a7d0dad1a2689cdb605a2faf8feca2d22b55007dda602a901fe02604bb", kill_on_drop: false }`
[INFO] [stdout] b13da5a7d0dad1a2689cdb605a2faf8feca2d22b55007dda602a901fe02604bb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5b150bf5ac1ef30a71a1fd9abafd21f88e4a84a131d90c73dd483280aa7f170d
[INFO] running `Command { std: "docker" "start" "-a" "5b150bf5ac1ef30a71a1fd9abafd21f88e4a84a131d90c73dd483280aa7f170d", kill_on_drop: false }`
[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: 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 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: `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: `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: 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 `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] [stderr]    Compiling webtarot_bot v0.5.0 (/opt/rustwide/workdir/webtarot_bot)
[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]    Compiling webtarot_protocol v0.8.0 (/opt/rustwide/workdir/webtarot_protocol)
[INFO] [stderr]    Compiling tarotgame v0.6.7 (/opt/rustwide/workdir/tarotgame)
[INFO] [stderr]    Compiling webtarot_client v0.8.0 (/opt/rustwide/workdir/webtarot_client)
[INFO] [stderr]    Compiling webtarot_server v0.8.0 (/opt/rustwide/workdir/webtarot_server)
[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: `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/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: 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: 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 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: `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: `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: 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: 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: `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: 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: 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] [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: `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 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: 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: `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: `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_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 `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: 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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.00s
[INFO] running `Command { std: "docker" "inspect" "5b150bf5ac1ef30a71a1fd9abafd21f88e4a84a131d90c73dd483280aa7f170d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b150bf5ac1ef30a71a1fd9abafd21f88e4a84a131d90c73dd483280aa7f170d", kill_on_drop: false }`
[INFO] [stdout] 5b150bf5ac1ef30a71a1fd9abafd21f88e4a84a131d90c73dd483280aa7f170d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ffa83984c9fa08246cd6394f95ff2ceffe704777fcad606aaa2ec5128eea8beb
[INFO] running `Command { std: "docker" "start" "-a" "ffa83984c9fa08246cd6394f95ff2ceffe704777fcad606aaa2ec5128eea8beb", kill_on_drop: false }`
[INFO] [stderr] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stderr]  --> tarotgame/src/lib.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![cfg_attr(feature = "use_bench", feature(test))]
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]   |
[INFO] [stderr]   = note: no expected values for `feature`
[INFO] [stderr]   = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stderr]   --> tarotgame/src/lib.rs:42:7
[INFO] [stderr]    |
[INFO] [stderr] 42 | #[cfg(feature = "use_bench")]
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]    |
[INFO] [stderr]    = note: no expected values for `feature`
[INFO] [stderr]    = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stderr]    --> tarotgame/src/cards.rs:945:7
[INFO] [stderr]     |
[INFO] [stderr] 945 | #[cfg(feature = "use_bench")]
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]     |
[INFO] [stderr]     = note: no expected values for `feature`
[INFO] [stderr]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `use_bench`
[INFO] [stderr]    --> tarotgame/src/deal.rs:983:7
[INFO] [stderr]     |
[INFO] [stderr] 983 | #[cfg(feature = "use_bench")]
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]     |
[INFO] [stderr]     = note: no expected values for `feature`
[INFO] [stderr]     = help: consider adding `use_bench` as a feature in `Cargo.toml`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: `tarotgame` (lib) generated 4 warnings
[INFO] [stderr] warning: unused variable: `player_id`
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:183:18
[INFO] [stderr]     |
[INFO] [stderr] 183 |             for (player_id, player) in &self.players {
[INFO] [stderr]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_id`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `auction`
[INFO] [stderr]   --> webtarot_protocol/src/deal.rs:18:27
[INFO] [stderr]    |
[INFO] [stderr] 18 |             Deal::Bidding(ref auction) => {
[INFO] [stderr]    |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auction`
[INFO] [stderr] 
[INFO] [stderr] warning: `webtarot_protocol` (lib) generated 2 warnings (run `cargo fix --lib -p webtarot_protocol` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stderr]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use tungstenite::stream::Stream;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `UnixStream`
[INFO] [stderr]   --> webtarot_bot/src/socket_listener.rs:10:26
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::os::unix::net::{UnixStream,UnixListener};
[INFO] [stderr]    |                          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `url::Url`
[INFO] [stderr]   --> webtarot_bot/src/socket_listener.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use url::Url;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `url::Url`
[INFO] [stderr]  --> webtarot_bot/src/player.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use url::Url;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `deal_seeded_hands`
[INFO] [stderr]   --> webtarot_bot/src/player.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     deal_seeded_hands,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PlayEvent`
[INFO] [stderr]   --> webtarot_bot/src/player.rs:23:43
[INFO] [stderr]    |
[INFO] [stderr] 23 |     MakeDogCommand, Message, PlayCommand, PlayEvent, PlayerAction, PlayerRole, TarotVariant, Turn,
[INFO] [stderr]    |                                           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rayon::prelude::*`
[INFO] [stderr]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use rayon::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rayon::prelude`
[INFO] [stderr]  --> webtarot_bot/src/player.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use rayon::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nicknamer`
[INFO] [stderr]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pstat`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:335:33
[INFO] [stderr]     |
[INFO] [stderr] 335 |                     .map(|(idx, pstat)| idx);
[INFO] [stderr]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pstat`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `idx`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:334:29
[INFO] [stderr]     |
[INFO] [stderr] 334 |                     .find(|(idx, pstat)| pstat.played.has(king))
[INFO] [stderr]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mystats`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stderr]     |
[INFO] [stderr] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mystats`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stderr]     |
[INFO] [stderr] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `play_event`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stderr]     |
[INFO] [stderr] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stderr]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `now`
[INFO] [stderr]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stderr]     |
[INFO] [stderr] 650 |         let now = time::Instant::now();
[INFO] [stderr]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stderr]     |
[INFO] [stderr] 814 |                     let mut myhighest = my_highest.unwrap();
[INFO] [stderr]     |                         ----^^^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `vingtetun`
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stderr]      |
[INFO] [stderr] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mylowest`
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1102:25
[INFO] [stderr]      |
[INFO] [stderr] 1102 |             if let Some(mylowest) = hand.suit_lowest_over_card(Suit::Trump, winner_card) {
[INFO] [stderr]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mylowest`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `command`
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1316:24
[INFO] [stderr]      |
[INFO] [stderr] 1316 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stderr]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_test_state_from_snapshot` is never used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:220:12
[INFO] [stderr]     |
[INFO] [stderr] 199 | impl Player {
[INFO] [stderr]     | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 220 |     pub fn set_test_state_from_snapshot(&mut self, game_state: GameStateSnapshot) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestInOut` is never constructed
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1308:12
[INFO] [stderr]      |
[INFO] [stderr] 1308 | pub struct TestInOut {}
[INFO] [stderr]      |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stderr]     |
[INFO] [stderr] 224 | /         self.in_out
[INFO] [stderr] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stderr] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stderr] 227 | |             }));
[INFO] [stderr]     | |_______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 224 |         let _ = self.in_out
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::iter::Map` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:359:13
[INFO] [stderr]     |
[INFO] [stderr] 359 | /             self.stats
[INFO] [stderr] 360 | |                 .players
[INFO] [stderr] 361 | |                 .iter_mut()
[INFO] [stderr] 362 | |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stderr]     | |________________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 359 |             let _ = self.stats
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `Iterator::map` call that discard the iterator's values
[INFO] [stderr]    --> webtarot_bot/src/player.rs:362:18
[INFO] [stderr]     |
[INFO] [stderr] 362 |                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stderr]     |                  ^^^^--------------------------------------------------^
[INFO] [stderr]     |                  |   |
[INFO] [stderr]     |                  |   this function returns `()`, which is likely not what you wanted
[INFO] [stderr]     |                  |   called `Iterator::map` with callable that returns `()`
[INFO] [stderr]     |                  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] [stderr]     |
[INFO] [stderr]     = 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] [stderr]     = note: `#[warn(map_unit_fn)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: you might have meant to use `Iterator::for_each`
[INFO] [stderr]     |
[INFO] [stderr] 362 -                 .map(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stderr] 362 +                 .for_each(|pstat| pstat.in_taker_team = Some(pstat.is_taker));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:384:21
[INFO] [stderr]     |
[INFO] [stderr] 384 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stderr] 385 | |                         join_code: self.join_code.clone(),
[INFO] [stderr] 386 | |                     }));
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 384 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:393:21
[INFO] [stderr]     |
[INFO] [stderr] 393 |                     self.in_out.send(&Command::NewGame(variant));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 393 |                     let _ = self.in_out.send(&Command::NewGame(variant));
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:401:21
[INFO] [stderr]     |
[INFO] [stderr] 401 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 401 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:402:21
[INFO] [stderr]     |
[INFO] [stderr] 402 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 402 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:403:21
[INFO] [stderr]     |
[INFO] [stderr] 403 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 403 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:404:21
[INFO] [stderr]     |
[INFO] [stderr] 404 |                     self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 404 |                     let _ = self.in_out.send(&Command::InviteBot);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:406:17
[INFO] [stderr]     |
[INFO] [stderr] 406 |                 self.in_out.send(&Command::MarkReady);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 406 |                 let _ = self.in_out.send(&Command::MarkReady);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:425:21
[INFO] [stderr]     |
[INFO] [stderr] 425 | /                     self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stderr] 426 | |                         join_code: self.join_code.clone(),
[INFO] [stderr] 427 | |                     }));
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 425 |                     let _ = self.in_out.send(&Command::JoinGame(JoinGameCommand {
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:455:21
[INFO] [stderr]     |
[INFO] [stderr] 455 | /                     self.in_out
[INFO] [stderr] 456 | |                         .send(&Command::GamePlay(GamePlayCommand::Bid(BidCommand {
[INFO] [stderr] 457 | |                             target,
[INFO] [stderr] 458 | |                             slam: false,
[INFO] [stderr] 459 | |                         })));
[INFO] [stderr]     | |____________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 455 |                     let _ = self.in_out
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:461:21
[INFO] [stderr]     |
[INFO] [stderr] 461 |                     self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 461 |                     let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Pass));
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:465:17
[INFO] [stderr]     |
[INFO] [stderr] 465 | /                 self.in_out
[INFO] [stderr] 466 | |                     .send(&Command::GamePlay(GamePlayCommand::CallKing(
[INFO] [stderr] 467 | |                         CallKingCommand {
[INFO] [stderr] 468 | |                             card: self.call_king(),
[INFO] [stderr] 469 | |                         },
[INFO] [stderr] 470 | |                     )));
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 465 |                 let _ = self.in_out
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:477:17
[INFO] [stderr]     |
[INFO] [stderr] 477 | /                 self.in_out
[INFO] [stderr] 478 | |                     .send(&Command::GamePlay(GamePlayCommand::MakeDog(
[INFO] [stderr] 479 | |                         MakeDogCommand {
[INFO] [stderr] 480 | |                             cards: dog,
[INFO] [stderr] 481 | |                             slam: false,
[INFO] [stderr] 482 | |                         },
[INFO] [stderr] 483 | |                     )));
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 477 |                 let _ = self.in_out
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:509:29
[INFO] [stderr]     |
[INFO] [stderr] 509 | / ...                   self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stderr] 510 | | ...                       PlayCommand { card },
[INFO] [stderr] 511 | | ...                   )));
[INFO] [stderr]     | |_________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 509 |                             let _ = self.in_out.send(&Command::GamePlay(GamePlayCommand::Play(
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] 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] [stderr]    --> webtarot_bot/src/player.rs:641:14
[INFO] [stderr]     |
[INFO] [stderr] 641 |             .into_iter()
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 641 -             .into_iter()
[INFO] [stderr] 641 +             .iter()
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 640 -         let mut candidates: Vec<Card> = suits
[INFO] [stderr] 641 -             .into_iter()
[INFO] [stderr] 640 +         let mut candidates: Vec<Card> = IntoIterator::into_iter(suits)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |         self.socket.close(None);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |         let _ = self.socket.close(None);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `webtarot_bot` (lib) generated 39 warnings (run `cargo fix --lib -p webtarot_bot` to apply 19 suggestions)
[INFO] [stderr] warning: unused import: `rayon::prelude::*`
[INFO] [stderr]  --> webtarot_bot/src/in_out_websocket.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use rayon::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tungstenite::connect`
[INFO] [stderr]  --> webtarot_bot/src/player_factory.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use tungstenite::connect;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stderr]  --> webtarot_bot/src/player_factory.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use tungstenite::stream::Stream;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tungstenite::protocol::WebSocket`
[INFO] [stderr]  --> webtarot_bot/src/player_factory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use tungstenite::protocol::WebSocket;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]  --> webtarot_bot/src/player_factory.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use uuid::Uuid;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `url::Url`
[INFO] [stderr]   --> webtarot_bot/src/player_factory.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use url::Url;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Result`
[INFO] [stderr]   --> webtarot_bot/src/player_factory.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use serde_json::Result;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stderr]   --> webtarot_bot/src/player_factory.rs:13:25
[INFO] [stderr]    |
[INFO] [stderr] 13 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stderr]    |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stderr]   --> webtarot_bot/src/player_factory.rs:14:24
[INFO] [stderr]    |
[INFO] [stderr] 14 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::player`
[INFO] [stderr]   --> webtarot_bot/src/player_factory.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::player;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]  --> webtarot_bot/src/simulator.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use uuid::Uuid;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `url::Url`
[INFO] [stderr]  --> webtarot_bot/src/simulator.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use url::Url;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Result`
[INFO] [stderr]  --> webtarot_bot/src/simulator.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use serde_json::Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Command`, `GamePlayCommand`, `GamePlayerState`, `GameStateSnapshot`, `Message`, `PlayCommand`, and `PlayerAction`
[INFO] [stderr]  --> webtarot_bot/src/simulator.rs:9:25
[INFO] [stderr]   |
[INFO] [stderr] 9 | use webtarot_protocol::{Message, Command, GameStateSnapshot, PlayerAction, GamePlayCommand, PlayCommand, GamePlayerState};
[INFO] [stderr]   |                         ^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AuthenticateCommand`, `JoinGameCommand`, and `PlayerInfo`
[INFO] [stderr]   --> webtarot_bot/src/simulator.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 | use webgame_protocol::{AuthenticateCommand, JoinGameCommand, PlayerInfo};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::player`
[INFO] [stderr]   --> webtarot_bot/src/simulator.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::player;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tungstenite::stream::Stream`
[INFO] [stderr]  --> webtarot_bot/src/socket_listener.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use tungstenite::stream::Stream;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> webtarot_bot/src/explorer.rs:53:17
[INFO] [stderr]    |
[INFO] [stderr] 53 |         .find(|(i, n)| **n < 255)
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stderr]      |
[INFO] [stderr] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bot`
[INFO] [stderr]     --> webtarot_bot/src/player.rs:1172:9
[INFO] [stderr]      |
[INFO] [stderr] 1172 |     let mut bot = Player::new(in_out, "joincode".to_string(), format!("nickname"), delay);
[INFO] [stderr]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bot`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nicknamer`
[INFO] [stderr]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `json`
[INFO] [stderr]   --> webtarot_bot/src/main.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 |     let json = matches.value_of("json").unwrap_or("");
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> webtarot_bot/src/in_out_websocket.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |         self.socket.close(None);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |         let _ = self.socket.close(None);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stderr]     |
[INFO] [stderr] 224 | /         self.in_out
[INFO] [stderr] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stderr] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stderr] 227 | |             }));
[INFO] [stderr]     | |_______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 224 |         let _ = self.in_out
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `webtarot_bot` (bin "webtarot_bot" test) generated 57 warnings (33 duplicates) (run `cargo fix --bin "webtarot_bot" -p webtarot_bot --tests` to apply 22 suggestions)
[INFO] [stderr] warning: `webtarot_bot` (lib test) generated 40 warnings (40 duplicates)
[INFO] [stderr] warning: unused import: `deal_hands`
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:674:33
[INFO] [stderr]     |
[INFO] [stderr] 674 |     use tarotgame::{bid, cards, deal_hands, deal_seeded_hands};
[INFO] [stderr]     |                                 ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:679:22
[INFO] [stderr]     |
[INFO] [stderr] 679 |         fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:685:30
[INFO] [stderr]     |
[INFO] [stderr] 685 |         fn notify(&mut self, event: &(PlayEvent, TarotGameState)) {}
[INFO] [stderr]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hands_deal1`
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:730:13
[INFO] [stderr]     |
[INFO] [stderr] 730 |         let hands_deal1 = game.deal.hands();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hands_deal1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> webtarot_protocol/src/game.rs:875:9
[INFO] [stderr]     |
[INFO] [stderr] 875 |         game.make_dog(id0, dog, false);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 875 |         let _ = game.make_dog(id0, dog, false);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> webtarot_protocol/src/game.rs:1551:9
[INFO] [stderr]      |
[INFO] [stderr] 1551 |         game.make_dog(id0, dog, false); // keep initial dog
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1551 |         let _ = game.make_dog(id0, dog, false); // keep initial dog
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: function `test_next` is never used
[INFO] [stderr]    --> tarotgame/src/pos.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 164 |     fn test_next() {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `webtarot_protocol` (lib test) generated 8 warnings (2 duplicates) (run `cargo fix --lib -p webtarot_protocol --tests` to apply 4 suggestions)
[INFO] [stderr] warning: `tarotgame` (lib test) generated 5 warnings (4 duplicates)
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> webtarot_server/src/dispatcher.rs:153:9
[INFO] [stderr]     |
[INFO] [stderr] 153 |         drop(game_state_handle);
[INFO] [stderr]     |         ^^^^^-----------------^
[INFO] [stderr]     |              |
[INFO] [stderr]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     |
[INFO] [stderr] 153 -         drop(game_state_handle);
[INFO] [stderr] 153 +         let _ = game_state_handle;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> webtarot_server/src/dispatcher.rs:160:9
[INFO] [stderr]     |
[INFO] [stderr] 160 |         drop(game_state_handle);
[INFO] [stderr]     |         ^^^^^-----------------^
[INFO] [stderr]     |              |
[INFO] [stderr]     |              argument has type `&Arc<tokio::sync::Mutex<TarotGameState>>`
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     |
[INFO] [stderr] 160 -         drop(game_state_handle);
[INFO] [stderr] 160 +         let _ = game_state_handle;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `webtarot_server` (bin "webtarot_server" test) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tarotgame-eed9850e3b66d76e)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test bid::tests::test_auction ... ok
[INFO] [stdout] test deal::tests::test_has_higher_1 ... ok
[INFO] [stdout] test cards::tests::test_petit_sec ... ok
[INFO] [stdout] test deal::tests::test_has_higher_3 ... ok
[INFO] [stdout] test deal::tests::test_has_higher_2 ... ok
[INFO] [stdout] test cards::tests::test_card_translation ... ok
[INFO] [stdout] test deal::tests::test_has_higher_4 ... ok
[INFO] [stdout] test cards::tests::test_deck ... ok
[INFO] [stdout] test deal::tests::test_has_higher_5 ... ok
[INFO] [stdout] test cards::tests::test_cards ... ok
[INFO] [stdout] test pos::tests::test_pos ... ok
[INFO] [stdout] test cards::tests::test_suit_translation ... ok
[INFO] [stdout] test test_deals_tarot4 ... ok
[INFO] [stdout] test trick::tests::test_play_card ... ok
[INFO] [stdout] test test_deals_tarot5 ... ok
[INFO] [stdout] test deal::tests::test_play_card ... ok
[INFO] [stdout] test cards::tests::test_card_from_str ... ok
[INFO] [stdout] test test_deals_tarot3 ... ok
[INFO] [stdout] test deal::tests::test_excuse_not_required_after_trump ... ok
[INFO] [stdout] test pos::tests::test_prev ... ok
[INFO] [stdout] test cards::tests::test_hand ... ok
[INFO] [stdout] test cards::tests::test_has_any ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/webtarot_bot-57faeb737cb6b99c)
[INFO] [stdout] test cards::tests::test_card ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/webtarot_bot-e827fda4aa284e3f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test player::test_assure_petit ... ok
[INFO] [stdout] test player::test_save_own_petit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/webtarot_client-213c4db0ea70f223)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test player::test_assure_petit ... ok
[INFO] [stdout] test player::test_save_own_petit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/webtarot_protocol-68249202452e517c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test game::tests::test_all_pass ... ok
[INFO] [stdout] test game::tests::test_game ... ok
[INFO] [stdout] test game::tests::test_display ... ok
[INFO] [stdout] test game::tests::test_generic_game ... ok
[INFO] [stdout] test game::tests::test_garde_contre_4players ... ok
[INFO] [stdout] test game::tests::test_garde_contre ... ok
[INFO] [stderr]      Running unittests src/bin/read_debugbot.rs (/opt/rustwide/target/debug/deps/read_debugbot-0271ec8f35324144)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/webtarot_server-23b2563becd24a72)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tarotgame
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tarotgame/src/lib.rs - (line 6) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests webtarot_bot
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests webtarot_protocol
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ffa83984c9fa08246cd6394f95ff2ceffe704777fcad606aaa2ec5128eea8beb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ffa83984c9fa08246cd6394f95ff2ceffe704777fcad606aaa2ec5128eea8beb", kill_on_drop: false }`
[INFO] [stdout] ffa83984c9fa08246cd6394f95ff2ceffe704777fcad606aaa2ec5128eea8beb
