[INFO] cloning repository https://github.com/KirkLee12345/TWOW-Rust-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KirkLee12345/TWOW-Rust-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKirkLee12345%2FTWOW-Rust-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKirkLee12345%2FTWOW-Rust-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 380677bdfb29f90dfad19053c6676c6988876722
[INFO] checking KirkLee12345/TWOW-Rust-server against 0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0 for pr-158915-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKirkLee12345%2FTWOW-Rust-server" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KirkLee12345/TWOW-Rust-server
[INFO] finished tweaking git repo https://github.com/KirkLee12345/TWOW-Rust-server
[INFO] tweaked toml for git repo https://github.com/KirkLee12345/TWOW-Rust-server written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KirkLee12345/TWOW-Rust-server on toolchain 0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KirkLee12345/TWOW-Rust-server 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" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `TWOW-Rust-server` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-5-tc2/source/target/.../TWOW-Rust-server
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 - name = "TWOW-Rust-server"
[INFO] [stderr] 19 + name = "twow-rust-server"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:20:19
[INFO] [stderr]    |
[INFO] [stderr] 20 ~ version = "1.2.3"
[INFO] [stderr] 21 + [[bin]]
[INFO] [stderr] 22 + name = "twow-rust-server"
[INFO] [stderr] 23 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `TWOW-Rust-server` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking KirkLee12345/TWOW-Rust-server against 0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0 for pr-158915-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKirkLee12345%2FTWOW-Rust-server" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KirkLee12345/TWOW-Rust-server
[INFO] finished tweaking git repo https://github.com/KirkLee12345/TWOW-Rust-server
[INFO] tweaked toml for git repo https://github.com/KirkLee12345/TWOW-Rust-server written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KirkLee12345/TWOW-Rust-server on toolchain 0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KirkLee12345/TWOW-Rust-server 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" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `TWOW-Rust-server` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-5-tc2/source/target/.../TWOW-Rust-server
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 - name = "TWOW-Rust-server"
[INFO] [stderr] 19 + name = "twow-rust-server"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:20:19
[INFO] [stderr]    |
[INFO] [stderr] 20 ~ version = "1.2.3"
[INFO] [stderr] 21 + [[bin]]
[INFO] [stderr] 22 + name = "twow-rust-server"
[INFO] [stderr] 23 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `TWOW-Rust-server` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quoted_printable v0.5.2
[INFO] [stderr]   Downloaded email-encoding v0.4.1
[INFO] [stderr]   Downloaded lettre v0.11.22
[INFO] [stderr]   Downloaded openssl v0.10.80
[INFO] [stderr]   Downloaded sled v0.34.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2
[INFO] running `Command { std: "docker" "start" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2" "/opt/rustwide/cargo-home/bin/cargo" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2" "/opt/rustwide/cargo-home/bin/cargo" "+0335fc7ee9e33d92e03d99f3e2fb0fe6119f3cc0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `TWOW-Rust-server` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../TWOW-Rust-server
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 - name = "TWOW-Rust-server"
[INFO] [stderr] 19 + name = "twow-rust-server"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `twow-rust-server`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:20:19
[INFO] [stderr]    |
[INFO] [stderr] 20 ~ version = "1.2.3"
[INFO] [stderr] 21 + [[bin]]
[INFO] [stderr] 22 + name = "twow-rust-server"
[INFO] [stderr] 23 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `TWOW-Rust-server` (manifest) generated 1 warning
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking email-encoding v0.4.1
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking hostname v0.4.2
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking quoted_printable v0.5.2
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking sled v0.34.7
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking lettre v0.11.22
[INFO] [stderr]     Checking TWOW-Rust-server v1.2.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for lib.rs
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | mod lib;
[INFO] [stdout]   | ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: lib.rs is the root of this crate's library target
[INFO] [stdout]   = help: to refer to it from other targets, use the library's name as the path
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/lib/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/lib/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lib::server::log`
[INFO] [stdout]  --> src/lib/email.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::lib::server::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lib::server::log`
[INFO] [stdout]  --> src/lib/email.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::lib::server::log;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/lib/room.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]  --> src/lib/room.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::PartialEq;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/lib/game.rs:366:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | /     match data[0] {
[INFO] [stdout] 118 | |
[INFO] [stdout] 119 | |         "sign" => {
[INFO] [stdout] 120 | |             match data.len() {
[INFO] [stdout] ...   |
[INFO] [stdout] 364 | |         _ => return String::from("tip [E126]无法解析的数据")
[INFO] [stdout] 365 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 366 |       unreachable!()
[INFO] [stdout]     |       ^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/lib/game.rs:366:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | /     match data[0] {
[INFO] [stdout] 118 | |
[INFO] [stdout] 119 | |         "sign" => {
[INFO] [stdout] 120 | |             match data.len() {
[INFO] [stdout] ...   |
[INFO] [stdout] 364 | |         _ => return String::from("tip [E126]无法解析的数据")
[INFO] [stdout] 365 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 366 |       unreachable!()
[INFO] [stdout]     |       ^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/lib/room.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | / ...   match self.player[p].hand_cards[card_index] {
[INFO] [stdout] 316 | | ...       Card::Empty => return "tip [E128]参数错误(该手牌不存在) ".to_string(),
[INFO] [stdout] 317 | | ...       Card::Skill(num) => {
[INFO] [stdout] 318 | | ...           self.log(thread_index, user_name, format!("log 你打出了一张{}，摸了{num}张牌 ", self.player[p].hand_cards[card_inde...
[INFO] [stdout] ...   |
[INFO] [stdout] 363 | | ...   }
[INFO] [stdout]     | |_______- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 364 |   ...   unreachable!()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/lib/room.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | / ...   match self.player[p].hand_cards[card_index] {
[INFO] [stdout] 316 | | ...       Card::Empty => return "tip [E128]参数错误(该手牌不存在) ".to_string(),
[INFO] [stdout] 317 | | ...       Card::Skill(num) => {
[INFO] [stdout] 318 | | ...           self.log(thread_index, user_name, format!("log 你打出了一张{}，摸了{num}张牌 ", self.player[p].hand_cards[card_inde...
[INFO] [stdout] ...   |
[INFO] [stdout] 363 | | ...   }
[INFO] [stdout]     | |_______- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 364 |   ...   unreachable!()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib/game.rs:201:29
[INFO] [stdout]     |
[INFO] [stdout] 201 |                         Err(e) => return String::from("tip [E104]参数错误(不可能的参数) "),
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib/game.rs:201:29
[INFO] [stdout]     |
[INFO] [stdout] 201 |                         Err(e) => return String::from("tip [E104]参数错误(不可能的参数) "),
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_index`
[INFO] [stdout]    --> src/lib/room.rs:166:63
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn remove_random_card_for_player(&mut self, p: usize, thread_index: usize) {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_index`
[INFO] [stdout]    --> src/lib/room.rs:166:63
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn remove_random_card_for_player(&mut self, p: usize, thread_index: usize) {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pp` is assigned to, but never used
[INFO] [stdout]    --> src/lib/room.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut pp: usize = 1;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pp` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             pp = 1;
[INFO] [stdout]     |             ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 313 |             pp = 0;
[INFO] [stdout]     |             ------ `pp` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |             pp = 0;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pp` is assigned to, but never used
[INFO] [stdout]    --> src/lib/room.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut pp: usize = 1;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pp` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |             pp = 1;
[INFO] [stdout]     |             ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 313 |             pp = 0;
[INFO] [stdout]     |             ------ `pp` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |             pp = 0;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/lib/room.rs:555:25
[INFO] [stdout]     |
[INFO] [stdout] 555 |             let mut p = 0;
[INFO] [stdout]     |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 561 |                 p = 1;
[INFO] [stdout]     |                 ----- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:556:26
[INFO] [stdout]     |
[INFO] [stdout] 556 |             let mut pp = 1;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 562 |                 pp = 0;
[INFO] [stdout]     |                 ------ `pp` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `p` is never read
[INFO] [stdout]    --> src/lib/room.rs:555:25
[INFO] [stdout]     |
[INFO] [stdout] 555 |             let mut p = 0;
[INFO] [stdout]     |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 561 |                 p = 1;
[INFO] [stdout]     |                 ----- `p` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pp` is never read
[INFO] [stdout]    --> src/lib/room.rs:556:26
[INFO] [stdout]     |
[INFO] [stdout] 556 |             let mut pp = 1;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 562 |                 pp = 0;
[INFO] [stdout]     |                 ------ `pp` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/lib/game.rs:358:24
[INFO] [stdout]     |
[INFO] [stdout] 358 |                     if card_index < 0 || card_index >= 8 { return String::from("tip [E124]参数错误(未知手牌) ");}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/lib/game.rs:358:24
[INFO] [stdout]     |
[INFO] [stdout] 358 |                     if card_index < 0 || card_index >= 8 { return String::from("tip [E124]参数错误(未知手牌) ");}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.46s
[INFO] running `Command { std: "docker" "inspect" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2", kill_on_drop: false }`
[INFO] [stdout] 5f6bade1cdcdf46baee1e28ce6b1a38995a83307fca1ee69ae1857932b2680e2
