[INFO] cloning repository https://github.com/feraaaxg/brawl_core_29v
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/feraaaxg/brawl_core_29v" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fferaaaxg%2Fbrawl_core_29v", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fferaaaxg%2Fbrawl_core_29v'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e3a8aa71edbc39498d98c8bf4122365e4ecf972c
[INFO] checking feraaaxg/brawl_core_29v/e3a8aa71edbc39498d98c8bf4122365e4ecf972c against master#1fe72d35998dea48aeecaf7fc07783b0b553f24f for pr-154992
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fferaaaxg%2Fbrawl_core_29v" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  82% (519/631)
Updating files:  83% (524/631)
Updating files:  84% (531/631)
Updating files:  85% (537/631)
Updating files:  86% (543/631)
Updating files:  87% (549/631)
Updating files:  88% (556/631)
Updating files:  89% (562/631)
Updating files:  90% (568/631)
Updating files:  91% (575/631)
Updating files:  92% (581/631)
Updating files:  93% (587/631)
Updating files:  94% (594/631)
Updating files:  95% (600/631)
Updating files:  96% (606/631)
Updating files:  97% (613/631)
Updating files:  98% (619/631)
Updating files:  99% (625/631)
Updating files: 100% (631/631)
Updating files: 100% (631/631), done.
[INFO] started tweaking git repo https://github.com/feraaaxg/brawl_core_29v
[INFO] finished tweaking git repo https://github.com/feraaaxg/brawl_core_29v
[INFO] tweaked toml for git repo https://github.com/feraaaxg/brawl_core_29v written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/feraaaxg/brawl_core_29v on toolchain 1fe72d35998dea48aeecaf7fc07783b0b553f24f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/feraaaxg/brawl_core_29v 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" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 526af1f4a04458b03ae24546347da59dcd960e9b616a7d4e1a6a6982a215ca60
[INFO] running `Command { std: "docker" "start" "-a" "526af1f4a04458b03ae24546347da59dcd960e9b616a7d4e1a6a6982a215ca60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "526af1f4a04458b03ae24546347da59dcd960e9b616a7d4e1a6a6982a215ca60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "526af1f4a04458b03ae24546347da59dcd960e9b616a7d4e1a6a6982a215ca60", kill_on_drop: false }`
[INFO] [stdout] 526af1f4a04458b03ae24546347da59dcd960e9b616a7d4e1a6a6982a215ca60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 398b8099b82e4cef4c2178cafbf5098f897fff2fd0036900b8720cc7e047080a
[INFO] running `Command { std: "docker" "start" "-a" "398b8099b82e4cef4c2178cafbf5098f897fff2fd0036900b8720cc7e047080a", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking chrono v0.4.40
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking tokio v1.44.2
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking brawl_29v v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::logger`
[INFO] [stdout]  --> src/networking/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::logger;
[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 imports: `BufMut` and `Buf`
[INFO] [stdout]  --> src/stream/byte_stream.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::{BytesMut, BufMut, Buf};
[INFO] [stdout]   |                       ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PiranhaMessage`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::message::piranha_message::{Coder, MessageOps, PiranhaMessage};
[INFO] [stdout]   |                                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::networking::client::ClientConnection`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::networking::client::ClientConnection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::logger`
[INFO] [stdout]  --> src/networking/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::logger;
[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 imports: `BufMut` and `Buf`
[INFO] [stdout]  --> src/stream/byte_stream.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::{BytesMut, BufMut, Buf};
[INFO] [stdout]   |                       ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PiranhaMessage`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::message::piranha_message::{Coder, MessageOps, PiranhaMessage};
[INFO] [stdout]   |                                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::networking::client::ClientConnection`
[INFO] [stdout]  --> src/message/client/titan_login_message.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::networking::client::ClientConnection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/networking/client.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let mut client_guard = client.lock().await;
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/networking/client.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let mut client_guard = client.lock().await;
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/message/piranha_message.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut client_guard = client.lock().await;
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/message/piranha_message.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut client_guard = client.lock().await;
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_version`
[INFO] [stdout]   --> src/message/message_manager.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let msg_version = reader.get_u16();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_version`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut server = Server::new("46.173.214.121".to_string(), "9339".to_string()).await;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let config = load_config(config_file).unwrap();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_version`
[INFO] [stdout]   --> src/message/message_manager.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let msg_version = reader.get_u16();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_version`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_message_type_name` is never used
[INFO] [stdout]    --> src/message/piranha_message.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |           impl $struct_name {
[INFO] [stdout]     |           ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |               pub fn get_message_type_name() -> &'static str {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/titan_login_message.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | / define_message!(
[INFO] [stdout]   8 | |     TitanLoginMessage,
[INFO] [stdout]   9 | |     "TitanLoginMessage",
[INFO] [stdout]  10 | |     10101
[INFO] [stdout]  11 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client` is never read
[INFO] [stdout]    --> src/message/piranha_message.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |               client: std::sync::Arc<tokio::sync::Mutex<crate::networking::client::ClientConnection>>,
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/client_hello_message.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / define_message!(
[INFO] [stdout]   6 | |     ClientHelloMessage,
[INFO] [stdout]     | |     ------------------ field in this struct
[INFO] [stdout]   7 | |     "ClientHelloMessage",
[INFO] [stdout]   8 | |     10100
[INFO] [stdout]   9 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_message_type_name` is never used
[INFO] [stdout]    --> src/message/piranha_message.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |           impl $struct_name {
[INFO] [stdout]     |           ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |               pub fn get_message_type_name() -> &'static str {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/client_hello_message.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / define_message!(
[INFO] [stdout]   6 | |     ClientHelloMessage,
[INFO] [stdout]   7 | |     "ClientHelloMessage",
[INFO] [stdout]   8 | |     10100
[INFO] [stdout]   9 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Player` is never constructed
[INFO] [stdout]  --> src/logic/player.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Player {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     async fn send(&mut self) -> std::io::Result<()> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 111 ~     fn send(&mut self) -> impl std::future::Future<Output = std::io::Result<()>> + Send {async {
[INFO] [stdout] 112 |         let mut header = BytesMut::with_capacity(7);
[INFO] [stdout] ...
[INFO] [stdout] 128 |         socket.write_all(&data).await
[INFO] [stdout] 129 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     async fn encode(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 193 -     async fn encode(&mut self) -> &mut Self;
[INFO] [stdout] 193 +     fn encode(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     async fn decode(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 194 -     async fn decode(&mut self) -> &mut Self;
[INFO] [stdout] 194 +     fn decode(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     async fn process(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 195 -     async fn process(&mut self) -> &mut Self;
[INFO] [stdout] 195 +     fn process(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut server = Server::new("46.173.214.121".to_string(), "9339".to_string()).await;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let config = load_config(config_file).unwrap();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_message_type_name` is never used
[INFO] [stdout]    --> src/message/piranha_message.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |           impl $struct_name {
[INFO] [stdout]     |           ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |               pub fn get_message_type_name() -> &'static str {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/titan_login_message.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | / define_message!(
[INFO] [stdout]   8 | |     TitanLoginMessage,
[INFO] [stdout]   9 | |     "TitanLoginMessage",
[INFO] [stdout]  10 | |     10101
[INFO] [stdout]  11 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client` is never read
[INFO] [stdout]    --> src/message/piranha_message.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |               client: std::sync::Arc<tokio::sync::Mutex<crate::networking::client::ClientConnection>>,
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/client_hello_message.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / define_message!(
[INFO] [stdout]   6 | |     ClientHelloMessage,
[INFO] [stdout]     | |     ------------------ field in this struct
[INFO] [stdout]   7 | |     "ClientHelloMessage",
[INFO] [stdout]   8 | |     10100
[INFO] [stdout]   9 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_message_type_name` is never used
[INFO] [stdout]    --> src/message/piranha_message.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 210 |           impl $struct_name {
[INFO] [stdout]     |           ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |               pub fn get_message_type_name() -> &'static str {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/client/client_hello_message.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / define_message!(
[INFO] [stdout]   6 | |     ClientHelloMessage,
[INFO] [stdout]   7 | |     "ClientHelloMessage",
[INFO] [stdout]   8 | |     10100
[INFO] [stdout]   9 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `define_message` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Player` is never constructed
[INFO] [stdout]  --> src/logic/player.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Player {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     async fn send(&mut self) -> std::io::Result<()> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 111 ~     fn send(&mut self) -> impl std::future::Future<Output = std::io::Result<()>> + Send {async {
[INFO] [stdout] 112 |         let mut header = BytesMut::with_capacity(7);
[INFO] [stdout] ...
[INFO] [stdout] 128 |         socket.write_all(&data).await
[INFO] [stdout] 129 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     async fn encode(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 193 -     async fn encode(&mut self) -> &mut Self;
[INFO] [stdout] 193 +     fn encode(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     async fn decode(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 194 -     async fn decode(&mut self) -> &mut Self;
[INFO] [stdout] 194 +     fn decode(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/message/piranha_message.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     async fn process(&mut self) -> &mut Self;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 195 -     async fn process(&mut self) -> &mut Self;
[INFO] [stdout] 195 +     fn process(&mut self) -> impl std::future::Future<Output = &mut Self> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.75s
[INFO] running `Command { std: "docker" "inspect" "398b8099b82e4cef4c2178cafbf5098f897fff2fd0036900b8720cc7e047080a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "398b8099b82e4cef4c2178cafbf5098f897fff2fd0036900b8720cc7e047080a", kill_on_drop: false }`
[INFO] [stdout] 398b8099b82e4cef4c2178cafbf5098f897fff2fd0036900b8720cc7e047080a
