[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] 27470c49ca4e45554501bd6fd8e25f3d04f1e322
[INFO] building mmai/webtarot against master#ad211ced81509462cdfe4c29ed10f97279a0acae for pr-135216-2
[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] validating manifest of git repo https://github.com/mmai/webtarot on toolchain ad211ced81509462cdfe4c29ed10f97279a0acae
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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] 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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "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]  Downloading crates ...
[INFO] [stderr]   Downloaded boolinator v2.4.0
[INFO] [stderr]   Downloaded proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]   Downloaded windows-targets v0.48.1
[INFO] [stderr]   Downloaded encoding_index_tests v0.1.4
[INFO] [stderr]   Downloaded rust-embed-impl v6.8.1
[INFO] [stderr]   Downloaded wee_alloc v0.4.5
[INFO] [stderr]   Downloaded winapi-util v0.1.5
[INFO] [stderr]   Downloaded memoffset v0.5.6
[INFO] [stderr]   Downloaded core-foundation-sys v0.8.4
[INFO] [stderr]   Downloaded http-body v0.3.1
[INFO] [stderr]   Downloaded tokio-tungstenite v0.18.0
[INFO] [stderr]   Downloaded headers-core v0.2.0
[INFO] [stderr]   Downloaded maybe-uninit v2.0.0
[INFO] [stderr]   Downloaded pin-project-internal v1.1.3
[INFO] [stderr]   Downloaded tokio-stream v0.1.14
[INFO] [stderr]   Downloaded multer v2.1.0
[INFO] [stderr]   Downloaded pin-project v1.1.3
[INFO] [stderr]   Downloaded mio v0.8.8
[INFO] [stderr]   Downloaded mime_guess v2.0.4
[INFO] [stderr]   Downloaded indexmap v2.0.0
[INFO] [stderr]   Downloaded futures v0.1.31
[INFO] [stderr]   Downloaded warp v0.3.5
[INFO] [stderr]   Downloaded gimli v0.27.3
[INFO] [stderr]   Downloaded hyper v0.13.10
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.48.0
[INFO] [stderr]   Downloaded serde_derive v1.0.182
[INFO] [stderr]   Downloaded clap v2.34.0
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.48.0
[INFO] [stderr]   Downloaded openssl v0.10.55
[INFO] [stderr]   Downloaded regex v1.9.3
[INFO] [stderr]   Downloaded console_error_panic_hook v0.1.7
[INFO] [stderr]   Downloaded aho-corasick v1.0.2
[INFO] [stderr]   Downloaded winnow v0.5.4
[INFO] [stderr]   Downloaded regex-syntax v0.7.4
[INFO] [stderr]   Downloaded rustix v0.38.7
[INFO] [stderr]   Downloaded h2 v0.2.7
[INFO] [stderr]   Downloaded tokio v0.2.25
[INFO] [stderr]   Downloaded im-rc v14.3.0
[INFO] [stderr]   Downloaded hashbrown v0.14.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.48.0
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.48.0
[INFO] [stderr]   Downloaded toml_edit v0.19.14
[INFO] [stderr]   Downloaded tokio v1.29.1
[INFO] [stderr]   Downloaded windows_i686_gnu v0.48.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.48.0
[INFO] [stderr]   Downloaded web-sys v0.3.64
[INFO] [stderr]   Downloaded sled v0.34.7
[INFO] [stderr]   Downloaded regex-automata v0.3.6
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.48.0
[INFO] [stderr]   Downloaded libc v0.2.147
[INFO] [stderr]   Downloaded rust-embed v6.8.1
[INFO] [stderr]   Downloaded h2 v0.3.20
[INFO] [stderr]   Downloaded object v0.31.1
[INFO] [stderr]   Downloaded tokio-util v0.7.8
[INFO] [stderr]   Downloaded security-framework v2.9.2
[INFO] [stderr]   Downloaded mio v0.6.23
[INFO] [stderr]   Downloaded crossbeam-channel v0.3.9
[INFO] [stderr]   Downloaded idna v0.4.0
[INFO] [stderr]   Downloaded hyper v0.14.27
[INFO] [stderr]   Downloaded tracing-core v0.1.31
[INFO] [stderr]   Downloaded sled v0.29.2
[INFO] [stderr]   Downloaded tracing v0.1.37
[INFO] [stderr]   Downloaded base64 v0.12.3
[INFO] [stderr]   Downloaded openssl-sys v0.9.90
[INFO] [stderr]   Downloaded toml v0.5.11
[INFO] [stderr]   Downloaded toml v0.7.6
[INFO] [stderr]   Downloaded unic-langid-impl v0.9.1
[INFO] [stderr]   Downloaded bytes v0.5.6
[INFO] [stderr]   Downloaded schannel v0.1.22
[INFO] [stderr]   Downloaded tungstenite v0.11.1
[INFO] [stderr]   Downloaded parking_lot v0.12.1
[INFO] [stderr]   Downloaded async-trait v0.1.76
[INFO] [stderr]   Downloaded parking_lot_core v0.8.6
[INFO] [stderr]   Downloaded parking_lot v0.11.2
[INFO] [stderr]   Downloaded base64 v0.21.2
[INFO] [stderr]   Downloaded sled-extensions v0.2.0
[INFO] [stderr]   Downloaded ansi_term v0.12.1
[INFO] [stderr]   Downloaded unicode-width v0.1.10
[INFO] [stderr]   Downloaded env_logger v0.8.4
[INFO] [stderr]   Downloaded core-foundation v0.9.3
[INFO] [stderr]   Downloaded security-framework-sys v2.9.1
[INFO] [stderr]   Downloaded fastrand v2.0.0
[INFO] [stderr]   Downloaded bitflags v2.3.3
[INFO] [stderr]   Downloaded errno v0.3.2
[INFO] [stderr]   Downloaded tempfile v3.7.0
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.5
[INFO] [stderr]   Downloaded toml_datetime v0.6.3
[INFO] [stderr]   Downloaded lock_api v0.4.10
[INFO] [stderr]   Downloaded smallvec v1.11.0
[INFO] [stderr]   Downloaded parking_lot_core v0.9.8
[INFO] [stderr]   Downloaded encoding_rs v0.8.32
[INFO] [stderr]   Downloaded tinystr v0.7.1
[INFO] [stderr]   Downloaded i18n-embed v0.13.9
[INFO] [stderr]   Downloaded rand_xoshiro v0.4.0
[INFO] [stderr]   Downloaded sized-chunks v0.5.3
[INFO] [stderr]   Downloaded tokio-util v0.3.1
[INFO] [stderr]   Downloaded httpdate v0.3.2
[INFO] [stderr]   Downloaded socket2 v0.3.19
[INFO] [stderr]   Downloaded fuchsia-zircon v0.3.3
[INFO] [stderr]   Downloaded miow v0.2.2
[INFO] [stderr]   Downloaded pin-project-lite v0.1.12
[INFO] [stderr]   Downloaded env_logger v0.7.1
[INFO] [stderr]   Downloaded redox_syscall v0.2.16
[INFO] [stderr]   Downloaded syn v2.0.28
[INFO] [stderr]   Downloaded base64 v0.13.1
[INFO] [stderr]   Downloaded strsim v0.8.0
[INFO] [stderr]   Downloaded textwrap v0.11.0
[INFO] [stderr]   Downloaded vec_map v0.8.2
[INFO] [stderr]   Downloaded hermit-abi v0.1.19
[INFO] [stderr]   Downloaded termcolor v1.2.0
[INFO] [stderr]   Downloaded hermit-abi v0.3.2
[INFO] [stderr]   Downloaded input_buffer v0.3.1
[INFO] [stderr]   Downloaded sha-1 v0.9.8
[INFO] [stderr]   Downloaded utf-8 v0.7.6
[INFO] [stderr]   Downloaded fluent-langneg v0.13.0
[INFO] [stderr]   Downloaded find-crate v0.6.3
[INFO] [stderr]   Downloaded serde_spanned v0.6.3
[INFO] [stderr]   Downloaded i18n-config v0.4.4
[INFO] [stderr]   Downloaded intl-memoizer v0.5.1
[INFO] [stderr]   Downloaded redox_syscall v0.3.5
[INFO] [stderr]   Downloaded displaydoc v0.2.4
[INFO] [stderr]   Downloaded bitmaps v2.1.0
[INFO] [stderr]   Downloaded tracing-futures v0.2.5
[INFO] [stderr]   Downloaded net2 v0.2.39
[INFO] [stderr]   Downloaded quick-error v1.2.3
[INFO] [stderr]   Downloaded humantime v1.3.0
[INFO] [stderr]   Downloaded pretty_env_logger v0.4.0
[INFO] [stderr]   Downloaded nodrop v0.1.14
[INFO] [stderr]   Downloaded lock_api v0.3.4
[INFO] [stderr]   Downloaded socket2 v0.4.9
[INFO] [stderr]   Downloaded headers v0.3.8
[INFO] [stderr]   Downloaded tungstenite v0.18.0
[INFO] [stderr]   Downloaded iovec v0.1.4
[INFO] [stderr]   Downloaded chrono v0.4.26
[INFO] [stderr]   Downloaded gloo v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.87
[INFO] [stderr]   Downloaded rustls-pemfile v1.0.3
[INFO] [stderr]   Downloaded tokio-macros v2.1.0
[INFO] [stderr]   Downloaded parking_lot v0.9.0
[INFO] [stderr]   Downloaded tokio-timer v0.2.13
[INFO] [stderr]   Downloaded smallvec v0.6.14
[INFO] [stderr]   Downloaded parking_lot_core v0.6.3
[INFO] [stderr]   Downloaded backtrace v0.3.68
[INFO] [stderr]   Downloaded serde_bytes v0.11.15
[INFO] [stderr]   Downloaded crossbeam-utils v0.7.2
[INFO] [stderr]   Downloaded tokio-executor v0.1.10
[INFO] [stderr]   Downloaded http-body v0.4.5
[INFO] [stderr]   Downloaded httpdate v1.0.2
[INFO] [stderr]   Downloaded try-lock v0.2.4
[INFO] [stderr]   Downloaded unicase v2.6.0
[INFO] [stderr]   Downloaded semver-parser v0.7.0
[INFO] [stderr]   Downloaded atty v0.2.14
[INFO] [stderr]   Downloaded type-map v0.4.0
[INFO] [stderr]   Downloaded unic-langid v0.9.1
[INFO] [stderr]   Downloaded fuchsia-zircon-sys v0.3.3
[INFO] [stderr]   Downloaded encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]   Downloaded futures-util v0.3.28
[INFO] [stderr]   Downloaded serde_json v1.0.104
[INFO] [stderr]   Downloaded rustc_version v0.2.3
[INFO] [stderr]   Downloaded sha1 v0.10.5
[INFO] [stderr]   Downloaded addr2line v0.20.0
[INFO] [stderr]   Downloaded i18n-embed-impl v0.8.1
[INFO] [stderr]   Downloaded ws2_32-sys v0.2.1
[INFO] [stderr]   Downloaded listenfd v0.3.5
[INFO] [stderr]   Downloaded instant v0.1.13
[INFO] [stderr]   Downloaded arrayvec v0.4.12
[INFO] [stderr]   Downloaded crossbeam-epoch v0.7.2
[INFO] [stderr]   Downloaded crossbeam-utils v0.6.6
[INFO] [stderr]   Downloaded encoding-index-japanese v1.20141219.5
[INFO] [stderr]   Downloaded encoding-index-korean v1.20141219.5
[INFO] [stderr]   Downloaded encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]   Downloaded unicode-normalization v0.1.22
[INFO] [stderr]   Downloaded rand v0.7.3
[INFO] [stderr]   Downloaded http v0.2.9
[INFO] [stderr]   Downloaded js-sys v0.3.64
[INFO] [stderr]   Downloaded bumpalo v3.13.0
[INFO] [stderr]   Downloaded miniz_oxide v0.7.1
[INFO] [stderr]   Downloaded encoding v0.2.33
[INFO] [stderr]   Downloaded url v2.4.0
[INFO] [stderr]   Downloaded cc v1.0.81
[INFO] [stderr]   Downloaded num-traits v0.2.16
[INFO] [stderr]   Downloaded memchr v2.5.0
[INFO] [stderr]   Downloaded bytes v1.4.0
[INFO] [stderr]   Downloaded indexmap v1.9.3
[INFO] [stderr]   Downloaded serde v1.0.182
[INFO] [stderr]   Downloaded unicode-ident v1.0.11
[INFO] [stderr]   Downloaded typenum v1.16.0
[INFO] [stderr]   Downloaded unicode-bidi v0.3.13
[INFO] [stderr]   Downloaded anyhow v1.0.72
[INFO] [stderr]   Downloaded futures v0.3.28
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.37
[INFO] [stderr]   Downloaded log v0.4.19
[INFO] [stderr]   Downloaded time v0.1.45
[INFO] [stderr]   Downloaded futures-channel v0.3.28
[INFO] [stderr]   Downloaded pin-project-lite v0.2.11
[INFO] [stderr]   Downloaded once_cell v1.18.0
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.87
[INFO] [stderr]   Downloaded yew v0.17.4
[INFO] [stderr]   Downloaded fxhash v0.2.1
[INFO] [stderr]   Downloaded semver v0.9.0
[INFO] [stderr]   Downloaded cpufeatures v0.2.9
[INFO] [stderr]   Downloaded version_check v0.9.4
[INFO] [stderr]   Downloaded sha2 v0.10.7
[INFO] [stderr]   Downloaded walkdir v2.3.3
[INFO] [stderr]   Downloaded form_urlencoded v1.2.0
[INFO] [stderr]   Downloaded percent-encoding v2.3.0
[INFO] [stderr]   Downloaded rand_chacha v0.2.2
[INFO] [stderr]   Downloaded rand_hc v0.2.0
[INFO] [stderr]   Downloaded iana-time-zone v0.1.57
[INFO] [stderr]   Downloaded memory_units v0.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.87
[INFO] [stderr]   Downloaded encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]   Downloaded gettext v0.4.0
[INFO] [stderr]   Downloaded heck v0.3.3
[INFO] [stderr]   Downloaded strum_macros v0.19.4
[INFO] [stderr]   Downloaded anymap v0.12.1
[INFO] [stderr]   Downloaded futures-io v0.3.28
[INFO] [stderr]   Downloaded thiserror-impl v1.0.44
[INFO] [stderr]   Downloaded cfg-if v0.1.10
[INFO] [stderr]   Downloaded futures-core v0.3.28
[INFO] [stderr]   Downloaded futures-macro v0.3.28
[INFO] [stderr]   Downloaded futures-sink v0.3.28
[INFO] [stderr]   Downloaded gloo-file v0.1.0
[INFO] [stderr]   Downloaded slab v0.4.8
[INFO] [stderr]   Downloaded thiserror v1.0.44
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.87
[INFO] [stderr]   Downloaded rust-embed-utils v7.8.1
[INFO] [stderr]   Downloaded tr v0.1.7
[INFO] [stderr]   Downloaded weblog-proc-macro v0.3.0
[INFO] [stderr]   Downloaded cfg-match v0.2.1
[INFO] [stderr]   Downloaded futures-executor v0.3.28
[INFO] [stderr]   Downloaded futures-task v0.3.28
[INFO] [stderr]   Downloaded weblog v0.3.0
[INFO] [stderr]   Downloaded strum v0.19.5
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.87
[INFO] [stderr]   Downloaded gloo-console-timer v0.1.0
[INFO] [stderr]   Downloaded gloo-events v0.1.2
[INFO] [stderr]   Downloaded gloo-timers v0.2.6
[INFO] [stderr]   Downloaded proc-macro-nested v0.1.7
[INFO] [stderr]   Downloaded proc-macro2 v1.0.66
[INFO] [stderr]   Downloaded quote v1.0.32
[INFO] [stderr]   Downloaded yew-macro v0.17.0
[INFO] [stderr]   Downloaded windows v0.48.0
[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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f701cca5843c7a740339446b0497d553729a55f6e869491883182baededf8869
[INFO] running `Command { std: "docker" "start" "-a" "f701cca5843c7a740339446b0497d553729a55f6e869491883182baededf8869", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f701cca5843c7a740339446b0497d553729a55f6e869491883182baededf8869", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f701cca5843c7a740339446b0497d553729a55f6e869491883182baededf8869", kill_on_drop: false }`
[INFO] [stdout] f701cca5843c7a740339446b0497d553729a55f6e869491883182baededf8869
[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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 68442a1e967251cab67f78a2b5bb615ad9d83262aa4237d44179803316a24ad0
[INFO] running `Command { std: "docker" "start" "-a" "68442a1e967251cab67f78a2b5bb615ad9d83262aa4237d44179803316a24ad0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]    Compiling log v0.4.19
[INFO] [stderr]    Compiling once_cell v1.18.0
[INFO] [stderr]    Compiling serde v1.0.182
[INFO] [stderr]    Compiling serde_derive v1.0.182
[INFO] [stderr]    Compiling typenum v1.16.0
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]    Compiling bytes v1.4.0
[INFO] [stderr]    Compiling itoa v1.0.9
[INFO] [stderr]    Compiling slab v0.4.8
[INFO] [stderr]    Compiling pin-project-lite v0.2.11
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.87
[INFO] [stderr]    Compiling futures-sink v0.3.28
[INFO] [stderr]    Compiling http v0.2.9
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling futures-task v0.3.28
[INFO] [stderr]    Compiling bumpalo v3.13.0
[INFO] [stderr]    Compiling syn v2.0.28
[INFO] [stderr]    Compiling cpufeatures v0.2.9
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]    Compiling futures-io v0.3.28
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling wasm-bindgen v0.2.87
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling thiserror v1.0.44
[INFO] [stderr]    Compiling percent-encoding v2.3.0
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.0
[INFO] [stderr]    Compiling getrandom v0.2.10
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling cc v1.0.81
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling unicode-bidi v0.3.13
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling tracing-core v0.1.31
[INFO] [stderr]    Compiling idna v0.4.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling openssl-sys v0.9.90
[INFO] [stderr]    Compiling tokio v1.29.1
[INFO] [stderr]    Compiling encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling ryu v1.0.15
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling serde_json v1.0.104
[INFO] [stderr]    Compiling url v2.4.0
[INFO] [stderr]    Compiling tracing v0.1.37
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling mio v0.8.8
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling socket2 v0.4.9
[INFO] [stderr]    Compiling aho-corasick v1.0.2
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling iana-time-zone v0.1.57
[INFO] [stderr]    Compiling smallvec v1.11.0
[INFO] [stderr]    Compiling regex-syntax v0.7.4
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.87
[INFO] [stderr]    Compiling chrono v0.4.26
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.87
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.44
[INFO] [stderr]    Compiling displaydoc v0.2.4
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling regex-automata v0.3.6
[INFO] [stderr]    Compiling tinystr v0.7.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.3
[INFO] [stderr]    Compiling unic-langid-impl v0.9.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.87
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling hashbrown v0.14.0
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.55
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling termcolor v1.2.0
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling pin-project v1.1.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling webgame_protocol v0.7.8 (https://github.com/mmai/webgame?tag=v0.7.8#08529751)
[INFO] [stderr]    Compiling js-sys v0.3.64
[INFO] [stderr]    Compiling indexmap v2.0.0
[INFO] [stderr]    Compiling smallvec v0.6.14
[INFO] [stderr]    Compiling strum_macros v0.19.4
[INFO] [stderr]    Compiling unic-langid v0.9.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling serde_spanned v0.6.3
[INFO] [stderr]    Compiling regex v1.9.3
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling futures-executor v0.3.28
[INFO] [stderr]    Compiling futures v0.3.28
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling sha1 v0.10.5
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.39
[INFO] [stderr]    Compiling crossbeam-utils v0.6.6
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling try-lock v0.2.4
[INFO] [stderr]    Compiling nodrop v0.1.14
[INFO] [stderr]    Compiling strum v0.19.5
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling winnow v0.5.4
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling tokio-util v0.7.8
[INFO] [stderr]    Compiling tarotgame v0.6.7 (/opt/rustwide/workdir/tarotgame)
[INFO] [stderr]    Compiling web-sys v0.3.64
[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 want v0.3.1
[INFO] [stderr]    Compiling walkdir v2.3.3
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling encoding-index-korean v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]    Compiling toml_edit v0.19.14
[INFO] [stderr]    Compiling encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.8
[INFO] [stderr]    Compiling sha2 v0.10.7
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling lock_api v0.3.4
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling pin-project-lite v0.1.12
[INFO] [stderr]    Compiling httpdate v1.0.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]    Compiling sha-1 v0.9.8
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling tokio v0.2.25
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling tungstenite v0.18.0
[INFO] [stderr]    Compiling rust-embed-utils v7.8.1
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling encoding v0.2.33
[INFO] [stderr]    Compiling toml v0.7.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.7.2
[INFO] [stderr]    Compiling webtarot_protocol v0.7.8 (/opt/rustwide/workdir/webtarot_protocol)
[INFO] [stderr]    Compiling h2 v0.3.20
[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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling crossbeam-channel v0.3.9
[INFO] [stdout] warning: unused variable: `auction`
[INFO] [stdout]   --> webtarot_protocol/src/deal.rs:18:31
[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 input_buffer v0.3.1
[INFO] [stderr]    Compiling serde_bytes v0.11.15
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling http-body v0.4.5
[INFO] [stderr]    Compiling gloo-events v0.1.2
[INFO] [stderr]    Compiling headers-core v0.2.0
[INFO] [stderr]    Compiling encoding_rs v0.8.32
[INFO] [stderr]    Compiling anyhow v1.0.72
[INFO] [stderr]    Compiling base64 v0.21.2
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling futures v0.1.31
[INFO] [stderr]    Compiling async-trait v0.1.76
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling rayon v1.7.0
[INFO] [stderr]    Compiling find-crate v0.6.3
[INFO] [stderr]    Compiling tungstenite v0.11.1
[INFO] [stderr]    Compiling tokio-executor v0.1.10
[INFO] [stderr]    Compiling type-map v0.4.0
[INFO] [stderr]    Compiling rustls-pemfile v1.0.3
[INFO] [stderr]    Compiling gloo-file v0.1.0
[INFO] [stderr]    Compiling headers v0.3.8
[INFO] [stderr]    Compiling gloo-console-timer v0.1.0
[INFO] [stderr]    Compiling sled v0.29.2
[INFO] [stderr]    Compiling tokio-util v0.3.1
[INFO] [stderr]    Compiling i18n-config v0.4.4
[INFO] [stderr]    Compiling gettext v0.4.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.18.0
[INFO] [stderr]    Compiling rust-embed-impl v6.8.1
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling hyper v0.14.27
[INFO] [stderr]    Compiling gloo-timers v0.2.6
[INFO] [stderr]    Compiling tokio-stream v0.1.14
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[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 boolinator v2.4.0
[INFO] [stderr]    Compiling yew v0.17.4
[INFO] [stderr]    Compiling h2 v0.2.7
[INFO] [stderr]    Compiling yew-macro v0.17.0
[INFO] [stderr]    Compiling gloo v0.2.1
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling rust-embed v6.8.1
[INFO] [stderr]    Compiling i18n-embed-impl v0.8.1
[INFO] [stderr]    Compiling pretty_env_logger v0.4.0
[INFO] [stderr]    Compiling sled v0.34.7
[INFO] [stderr]    Compiling sized-chunks v0.5.3
[INFO] [stderr]    Compiling webtarot_bot v0.4.9 (/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)]` 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)]` on by default
[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: `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: `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] [stderr]    Compiling tr v0.1.7
[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)]` 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:1101:25
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             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:1198:24
[INFO] [stdout]      |
[INFO] [stdout] 1198 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` 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)]` on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[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> = 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 intl-memoizer v0.5.1
[INFO] [stderr]    Compiling tokio-timer v0.2.13
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.37
[INFO] [stderr]    Compiling fluent-langneg v0.13.0
[INFO] [stderr]    Compiling sled-extensions v0.2.0
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[INFO] [stderr]    Compiling weblog-proc-macro v0.3.0
[INFO] [stderr]    Compiling http-body v0.3.1
[INFO] [stderr]    Compiling rand_xoshiro v0.4.0
[INFO] [stderr]    Compiling listenfd v0.3.5
[INFO] [stderr]    Compiling socket2 v0.3.19
[INFO] [stderr]    Compiling httpdate v0.3.2
[INFO] [stderr]    Compiling anymap v0.12.1
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling cfg-match v0.2.1
[INFO] [stderr]    Compiling weblog v0.3.0
[INFO] [stderr]    Compiling i18n-embed v0.13.9
[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)]` 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)]` on by default
[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: `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: `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: `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)]` 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:1101:25
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             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:1198:24
[INFO] [stdout]      |
[INFO] [stdout] 1198 |     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)]` on by default
[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)]` 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)]` on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[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> = IntoIterator::into_iter(suits)
[INFO] [stdout]     |                                         ++++++++++++++++++++++++     ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling warp v0.3.5
[INFO] [stderr]    Compiling hyper v0.13.10
[INFO] [stderr]    Compiling webtarot_client v0.7.13 (/opt/rustwide/workdir/webtarot_client)
[INFO] [stderr]    Compiling webgame_server v0.7.8 (https://github.com/mmai/webgame?tag=v0.7.8#08529751)
[INFO] [stdout] warning: unused import: `tr::tr`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tr::tr;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DealSnapshot` and `Turn`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::protocol::{DealSnapshot, GamePlayerState, GameStateSnapshot, PlayerRole, Turn};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `deal_size` and `trick`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:34:35
[INFO] [stdout]    |
[INFO] [stdout] 34 | use tarotgame::{bid, deal, cards, deal_size, trick, Announce};
[INFO] [stdout]    |                                   ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::format_join_code`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crate::utils::format_join_code;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use lazy_static::lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LanguageLoader`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     LanguageLoader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> webtarot_client/src/views/game.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty_scores`
[INFO] [stdout]   --> webtarot_client/src/components/player_list.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let empty_scores = vec![0.0; nb_players];
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_scores`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn_info`
[INFO] [stdout]    --> webtarot_client/src/views/game.rs:540:13
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let turn_info = match self.game_state.turn {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let msg = chat_line.text().clone();
[INFO] [stdout]    |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling webtarot_server v0.7.12 (/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]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.87
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "68442a1e967251cab67f78a2b5bb615ad9d83262aa4237d44179803316a24ad0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68442a1e967251cab67f78a2b5bb615ad9d83262aa4237d44179803316a24ad0", kill_on_drop: false }`
[INFO] [stdout] 68442a1e967251cab67f78a2b5bb615ad9d83262aa4237d44179803316a24ad0
[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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1ac3438951c01ef7b486d72cd9cd127cf6ce893c4149e6a0c915d5dc675f2087
[INFO] running `Command { std: "docker" "start" "-a" "1ac3438951c01ef7b486d72cd9cd127cf6ce893c4149e6a0c915d5dc675f2087", 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auction`
[INFO] [stdout]   --> webtarot_protocol/src/deal.rs:18:31
[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)]` 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)]` on by default
[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: `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: `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: `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)]` 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:1101:25
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             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:1198:24
[INFO] [stdout]      |
[INFO] [stdout] 1198 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | /         self.in_out
[INFO] [stdout] 225 | |             .send(&Command::Authenticate(AuthenticateCommand {
[INFO] [stdout] 226 | |                 nickname: self.player_info.nickname.clone(),
[INFO] [stdout] 227 | |             }));
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` 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)]` on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[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> = 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_bot v0.4.9 (/opt/rustwide/workdir/webtarot_bot)
[INFO] [stderr]    Compiling webtarot_client v0.7.13 (/opt/rustwide/workdir/webtarot_client)
[INFO] [stderr]    Compiling webtarot_server v0.7.12 (/opt/rustwide/workdir/webtarot_server)
[INFO] [stdout] warning: unused import: `tr::tr`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tr::tr;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DealSnapshot` and `Turn`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::protocol::{DealSnapshot, GamePlayerState, GameStateSnapshot, PlayerRole, Turn};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `deal_size` and `trick`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:34:35
[INFO] [stdout]    |
[INFO] [stdout] 34 | use tarotgame::{bid, deal, cards, deal_size, trick, Announce};
[INFO] [stdout]    |                                   ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::format_join_code`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crate::utils::format_join_code;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use lazy_static::lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LanguageLoader`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     LanguageLoader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> webtarot_client/src/views/game.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty_scores`
[INFO] [stdout]   --> webtarot_client/src/components/player_list.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let empty_scores = vec![0.0; nb_players];
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_scores`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn_info`
[INFO] [stdout]    --> webtarot_client/src/views/game.rs:540:13
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let turn_info = match self.game_state.turn {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling webtarot_protocol v0.7.8 (/opt/rustwide/workdir/webtarot_protocol)
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let msg = chat_line.text().clone();
[INFO] [stdout]    |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tarotgame v0.6.7 (/opt/rustwide/workdir/tarotgame)
[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)]` 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/in_out_websocket.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` 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: `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)]` 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)]` on by default
[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: `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: `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: `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: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mystats`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:366:13
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mystats = &self.stats.players[me_pos];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mystats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `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: `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: `play_event`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:414:32
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Message::PlayEvent(play_event) => {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[INFO] [stdout]     |                         ----^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> webtarot_bot/src/player.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let now = time::Instant::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vingtetun`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |         let vingtetun = Card::new(Suit::Trump, Rank::Rank21);
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vingtetun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mylowest`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1101:25
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             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: `bot`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1168:13
[INFO] [stdout]      |
[INFO] [stdout] 1168 |     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: variable does not need to be mutable
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |     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: 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 variable: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1198:24
[INFO] [stdout]      |
[INFO] [stdout] 1198 |     fn send(&mut self, command: &Command) -> Result<()> {
[INFO] [stdout]      |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> webtarot_bot/src/player.rs:814:25
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let mut myhighest = my_highest.unwrap();
[INFO] [stdout]     |                         ----^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` 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:1101:25
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             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: `bot`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1168:13
[INFO] [stdout]      |
[INFO] [stdout] 1168 |     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: variable does not need to be mutable
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |     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: `command`
[INFO] [stdout]     --> webtarot_bot/src/player.rs:1198:24
[INFO] [stdout]      |
[INFO] [stdout] 1198 |     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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nicknamer`
[INFO] [stdout]   --> webtarot_bot/src/socket_listener.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let nicknamer = Mutex::new(NickNamer::new()); 
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nicknamer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `json`
[INFO] [stdout]   --> webtarot_bot/src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let json = matches.value_of("json").unwrap_or("");
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> webtarot_bot/src/player.rs: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)]` 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)]` on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[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> = 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: 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)]` on by default
[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)]` 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)]` on by default
[INFO] [stdout] help: you might have meant to use `Iterator::for_each`
[INFO] [stdout]     |
[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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[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> = IntoIterator::into_iter(suits)
[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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tr::tr`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tr::tr;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DealSnapshot` and `Turn`
[INFO] [stdout]  --> webtarot_client/src/components/player_list.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::protocol::{DealSnapshot, GamePlayerState, GameStateSnapshot, PlayerRole, Turn};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `deal_size` and `trick`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:34:35
[INFO] [stdout]    |
[INFO] [stdout] 34 | use tarotgame::{bid, deal, cards, deal_size, trick, Announce};
[INFO] [stdout]    |                                   ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::format_join_code`
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crate::utils::format_join_code;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use lazy_static::lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LanguageLoader`
[INFO] [stdout]   --> webtarot_client/src/lib.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     LanguageLoader,
[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)]` 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 import: `std::ops::Add`
[INFO] [stdout]  --> webtarot_client/src/views/game.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `empty_scores`
[INFO] [stdout]   --> webtarot_client/src/components/player_list.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let empty_scores = vec![0.0; nb_players];
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_scores`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `auction`
[INFO] [stdout]   --> webtarot_protocol/src/deal.rs:18:31
[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: 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn_info`
[INFO] [stdout]    --> webtarot_client/src/views/game.rs:540:13
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let turn_info = match self.game_state.turn {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_info`
[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)]` 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: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> webtarot_client/src/views/game.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let msg = chat_line.text().clone();
[INFO] [stdout]    |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.62s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.87
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "1ac3438951c01ef7b486d72cd9cd127cf6ce893c4149e6a0c915d5dc675f2087", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ac3438951c01ef7b486d72cd9cd127cf6ce893c4149e6a0c915d5dc675f2087", kill_on_drop: false }`
[INFO] [stdout] 1ac3438951c01ef7b486d72cd9cd127cf6ce893c4149e6a0c915d5dc675f2087
