[INFO] cloning repository https://github.com/Taahh/rustmate
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Taahh/rustmate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTaahh%2Frustmate", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTaahh%2Frustmate'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 93a122fc0466bc8f2ffa953dfa04ee2c0146099d
[INFO] checking Taahh/rustmate against try#7dabc88a3b6768751847baeb49983f31ac5f20e2 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTaahh%2Frustmate" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Taahh/rustmate
[INFO] finished tweaking git repo https://github.com/Taahh/rustmate
[INFO] tweaked toml for git repo https://github.com/Taahh/rustmate written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Taahh/rustmate on toolchain 7dabc88a3b6768751847baeb49983f31ac5f20e2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Taahh/rustmate 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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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 tokio-macros v1.7.0
[INFO] [stderr]   Downloaded libmath v0.2.1
[INFO] [stderr]   Downloaded once_cell v1.10.0
[INFO] [stderr]   Downloaded parking_lot v0.12.0
[INFO] [stderr]   Downloaded socket2 v0.4.4
[INFO] [stderr]   Downloaded syn v1.0.95
[INFO] [stderr]   Downloaded mio v0.8.3
[INFO] [stderr]   Downloaded tokio v1.18.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1f61ebd249735e858ce0720886ed8fd73aad70b1077bded73746f0d88875d57f
[INFO] running `Command { std: "docker" "start" "-a" "1f61ebd249735e858ce0720886ed8fd73aad70b1077bded73746f0d88875d57f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f61ebd249735e858ce0720886ed8fd73aad70b1077bded73746f0d88875d57f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f61ebd249735e858ce0720886ed8fd73aad70b1077bded73746f0d88875d57f", kill_on_drop: false }`
[INFO] [stdout] 1f61ebd249735e858ce0720886ed8fd73aad70b1077bded73746f0d88875d57f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2281155da23b559837d845bf1964eedc61e7210256da04b788ef15ec17fb01be
[INFO] running `Command { std: "docker" "start" "-a" "2281155da23b559837d845bf1964eedc61e7210256da04b788ef15ec17fb01be", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.39
[INFO] [stderr]    Compiling unicode-ident v1.0.0
[INFO] [stderr]    Compiling syn v1.0.95
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking mio v0.8.3
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking libmath v0.2.1
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]     Checking tokio v1.18.2
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking rustmate v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::networking::buffer::Buffer`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::networking::buffer::Buffer;
[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::borrow::BorrowMut`
[INFO] [stdout]  --> src/./networking/buffer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Shl`
[INFO] [stdout]  --> src/./networking/buffer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Shl;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::convert`
[INFO] [stdout]  --> src/./networking/buffer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::convert`
[INFO] [stdout]  --> src/./networking/hazel_message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/./networking/hazel_message.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::Chars`
[INFO] [stdout]  --> src/./inner/inner.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::Chars;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ModdedHandshake`
[INFO] [stdout]  --> src/./inner/./protocol/core_packets.rs:1:76
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::inner::protocol::root_packets::{HostGame, JoinGame, JoinedGame, ModdedHandshake};
[INFO] [stdout]   |                                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/./inner/./protocol/core_packets.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/./inner/inner.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut last_four = ((int >> 10) & 0xfffff);
[INFO] [stdout]    |                             ^                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -         let mut last_four = ((int >> 10) & 0xfffff);
[INFO] [stdout] 60 +         let mut last_four = (int >> 10) & 0xfffff ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Server`
[INFO] [stdout]  --> src/./connection/user.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{convert, Packet, ReliablePacket, Server};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::networking::buffer::Buffer`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::networking::buffer::Buffer;
[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::borrow::BorrowMut`
[INFO] [stdout]  --> src/./networking/buffer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Shl`
[INFO] [stdout]  --> src/./networking/buffer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Shl;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::convert`
[INFO] [stdout]  --> src/./networking/buffer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::convert`
[INFO] [stdout]  --> src/./networking/hazel_message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::convert;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/./networking/hazel_message.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::Chars`
[INFO] [stdout]  --> src/./inner/inner.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::Chars;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ModdedHandshake`
[INFO] [stdout]  --> src/./inner/./protocol/core_packets.rs:1:76
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::inner::protocol::root_packets::{HostGame, JoinGame, JoinedGame, ModdedHandshake};
[INFO] [stdout]   |                                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/./inner/./protocol/core_packets.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/./inner/inner.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut last_four = ((int >> 10) & 0xfffff);
[INFO] [stdout]    |                             ^                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -         let mut last_four = ((int >> 10) & 0xfffff);
[INFO] [stdout] 60 +         let mut last_four = (int >> 10) & 0xfffff ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Server`
[INFO] [stdout]  --> src/./connection/user.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{convert, Packet, ReliablePacket, Server};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:64:54
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:129:31
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut client_version = buffer.read_int_32();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hazel_version`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let hazel_version = buffer.read_byte();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hazel_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:53:54
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:87:34
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:87:54
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:120:34
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:120:54
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:150:34
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:150:54
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:64:34
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:64:54
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:129:31
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut client_version = buffer.read_int_32();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hazel_version`
[INFO] [stdout]    --> src/./inner/./protocol/core_packets.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let hazel_version = buffer.read_byte();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hazel_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:53:54
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:87:34
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:87:54
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:120:34
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:120:54
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn deserialize(&mut self, buffer: &mut Buffer) {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `socket`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:150:34
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/./inner/./protocol/root_packets.rs:150:54
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn process_packet(&mut self, socket: &UdpSocket, user: &User) {}
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut user: Option<User>;
[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/main.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let mut new_user = User { addr };
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_int_16`, `read_int_64`, and `write_uint_32` are never used
[INFO] [stdout]    --> src/./networking/buffer.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl Buffer {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn read_int_16(&mut self) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn read_int_64(&mut self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn write_uint_32(&mut self, int: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `length` and `from` are never used
[INFO] [stdout]   --> src/./networking/hazel_message.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl HazelMessage {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn length(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn from(hazel_msg: &HazelMessage) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct HelloPacket {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub client_version: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub username: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 14 |     pub auth: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     pub language: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 16 |     pub chat_mode: Option<i8>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 17 |     pub platform_id: Option<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 18 |     pub platform_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub protocol_version: Option<i8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub mod_count: Option<u32>
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_version` and `mod_count` are never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ModdedHelloPacket {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 24 |     pub protocol_version: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub mod_count: u32
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nonce` is never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AcknowledgePacket {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 29 |     pub nonce: u16,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReactorPacket` is never constructed
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct ReactorPacket;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `code` is never read
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct JoinGame {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 12 |     pub code: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `code`, `join_id`, and `host_id` are never read
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct JoinedGame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     pub code: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 17 |     pub join_id: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 18 |     pub host_id: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModdedHandshake` is never constructed
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ModdedHandshake {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `game_options_data` and `quick_chat_mode` are never used
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl HostGame {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 91 |     pub fn game_options_data(&self) -> &Option<GameOptionsData> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn quick_chat_mode(&self) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/./inner/./data/server.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct GameOptionsData {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout]  5 |     length: i8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  6 |     version: i8,
[INFO] [stdout]  7 |     max_players: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     keywords: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  9 |     map: i8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     player_speed_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     crew_light_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     imp_light_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     kill_cooldown: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     common_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     long_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 16 |     short_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |     meetings: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 18 |     imposters: i8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     kill_distance: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     discussion_time: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     voting_time: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     defaults: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     emergency_cooldown: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameOptionsData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/./inner/./data/server.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl GameOptionsData {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn length(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn version(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn max_players(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn keywords(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn map(&self) -> i8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn player_speed_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn crew_light_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn imp_light_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn kill_cooldown(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn common_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn long_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn short_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn meetings(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn imposters(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn kill_distance(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn discussion_time(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn voting_time(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn defaults(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn emergency_cooldown(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn ejections(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn visual_tasks(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn anonymous_voting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn task_bar(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn set_length(&mut self, length: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn set_version(&mut self, version: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn set_max_players(&mut self, max_players: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn set_keywords(&mut self, keywords: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn set_map(&mut self, map: i8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn set_player_speed_mod(&mut self, player_speed_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn set_crew_light_mod(&mut self, crew_light_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_imp_light_mod(&mut self, imp_light_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn set_kill_cooldown(&mut self, kill_cooldown: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn set_common_tasks(&mut self, common_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn set_long_tasks(&mut self, long_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn set_short_tasks(&mut self, short_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn set_meetings(&mut self, meetings: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn set_imposters(&mut self, imposters: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn set_kill_distance(&mut self, kill_distance: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn set_discussion_time(&mut self, discussion_time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn set_voting_time(&mut self, voting_time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn set_defaults(&mut self, defaults: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_emergency_cooldown(&mut self, emergency_cooldown: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/./networking/buffer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let float = unsafe { transmute::<[u8; 1], u8>(empty_bytes) };
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 41 -         let float = unsafe { transmute::<[u8; 1], u8>(empty_bytes) };
[INFO] [stdout] 41 +         let float = unsafe { u8::from_ne_bytes(empty_bytes) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return x.clone().read_u16::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |         return x.clone().read_i16::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/./networking/buffer.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let float = unsafe { transmute::<[u8; 4], i32>(empty_bytes) };
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 77 -         let float = unsafe { transmute::<[u8; 4], i32>(empty_bytes) };
[INFO] [stdout] 77 +         let float = unsafe { i32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |         return x.clone().read_i64::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:101:30
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let float = unsafe { transmute::<[u8; 4], u32>(empty_bytes) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 101 -         let float = unsafe { transmute::<[u8; 4], u32>(empty_bytes) };
[INFO] [stdout] 101 +         let float = unsafe { u32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:115:30
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let float = unsafe { transmute::<[u8; 4], f32>(empty_bytes) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let float = unsafe { transmute::<[u8; 4], f32>(empty_bytes) };
[INFO] [stdout] 115 +         let float = unsafe { f32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:203:30
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let float = unsafe { transmute::<u32, [u8; 4]>(int) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 203 -         let float = unsafe { transmute::<u32, [u8; 4]>(int) };
[INFO] [stdout] 203 +         let float = unsafe { u32::to_ne_bytes(int) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut user: Option<User>;
[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/main.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let mut new_user = User { addr };
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_int_16`, `read_int_64`, and `write_uint_32` are never used
[INFO] [stdout]    --> src/./networking/buffer.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl Buffer {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn read_int_16(&mut self) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn read_int_64(&mut self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn write_uint_32(&mut self, int: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `length` and `from` are never used
[INFO] [stdout]   --> src/./networking/hazel_message.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl HazelMessage {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn length(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn from(hazel_msg: &HazelMessage) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct HelloPacket {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub client_version: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub username: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 14 |     pub auth: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     pub language: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 16 |     pub chat_mode: Option<i8>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 17 |     pub platform_id: Option<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 18 |     pub platform_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub protocol_version: Option<i8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub mod_count: Option<u32>
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_version` and `mod_count` are never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ModdedHelloPacket {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 24 |     pub protocol_version: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub mod_count: u32
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nonce` is never read
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AcknowledgePacket {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 29 |     pub nonce: u16,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReactorPacket` is never constructed
[INFO] [stdout]   --> src/./inner/./protocol/core_packets.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct ReactorPacket;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `code` is never read
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct JoinGame {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 12 |     pub code: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `code`, `join_id`, and `host_id` are never read
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct JoinedGame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     pub code: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 17 |     pub join_id: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 18 |     pub host_id: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModdedHandshake` is never constructed
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ModdedHandshake {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `game_options_data` and `quick_chat_mode` are never used
[INFO] [stdout]   --> src/./inner/./protocol/root_packets.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl HostGame {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 91 |     pub fn game_options_data(&self) -> &Option<GameOptionsData> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn quick_chat_mode(&self) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/./inner/./data/server.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct GameOptionsData {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout]  5 |     length: i8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  6 |     version: i8,
[INFO] [stdout]  7 |     max_players: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     keywords: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  9 |     map: i8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     player_speed_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     crew_light_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     imp_light_mod: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     kill_cooldown: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     common_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     long_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 16 |     short_tasks: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |     meetings: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 18 |     imposters: i8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     kill_distance: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     discussion_time: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     voting_time: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     defaults: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     emergency_cooldown: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameOptionsData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/./inner/./data/server.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl GameOptionsData {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn length(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn version(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn max_players(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn keywords(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn map(&self) -> i8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn player_speed_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn crew_light_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn imp_light_mod(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn kill_cooldown(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn common_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn long_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn short_tasks(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn meetings(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn imposters(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn kill_distance(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn discussion_time(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn voting_time(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn defaults(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn emergency_cooldown(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn ejections(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn visual_tasks(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn anonymous_voting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn task_bar(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn set_length(&mut self, length: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn set_version(&mut self, version: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn set_max_players(&mut self, max_players: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn set_keywords(&mut self, keywords: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn set_map(&mut self, map: i8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn set_player_speed_mod(&mut self, player_speed_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn set_crew_light_mod(&mut self, crew_light_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_imp_light_mod(&mut self, imp_light_mod: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn set_kill_cooldown(&mut self, kill_cooldown: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn set_common_tasks(&mut self, common_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn set_long_tasks(&mut self, long_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn set_short_tasks(&mut self, short_tasks: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn set_meetings(&mut self, meetings: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn set_imposters(&mut self, imposters: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn set_kill_distance(&mut self, kill_distance: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn set_discussion_time(&mut self, discussion_time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn set_voting_time(&mut self, voting_time: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn set_defaults(&mut self, defaults: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_emergency_cooldown(&mut self, emergency_cooldown: i8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/./networking/buffer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let float = unsafe { transmute::<[u8; 1], u8>(empty_bytes) };
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 41 -         let float = unsafe { transmute::<[u8; 1], u8>(empty_bytes) };
[INFO] [stdout] 41 +         let float = unsafe { u8::from_ne_bytes(empty_bytes) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |         return x.clone().read_u16::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |         return x.clone().read_i16::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/./networking/buffer.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let float = unsafe { transmute::<[u8; 4], i32>(empty_bytes) };
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 77 -         let float = unsafe { transmute::<[u8; 4], i32>(empty_bytes) };
[INFO] [stdout] 77 +         let float = unsafe { i32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&mut &[u8]` instead of cloning the inner type
[INFO] [stdout]   --> src/./networking/buffer.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |         return x.clone().read_i64::<BigEndian>().unwrap();
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:101:30
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let float = unsafe { transmute::<[u8; 4], u32>(empty_bytes) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 101 -         let float = unsafe { transmute::<[u8; 4], u32>(empty_bytes) };
[INFO] [stdout] 101 +         let float = unsafe { u32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:115:30
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let float = unsafe { transmute::<[u8; 4], f32>(empty_bytes) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let float = unsafe { transmute::<[u8; 4], f32>(empty_bytes) };
[INFO] [stdout] 115 +         let float = unsafe { f32::from_ne_bytes(empty_bytes) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/./networking/buffer.rs:203:30
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let float = unsafe { transmute::<u32, [u8; 4]>(int) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 203 -         let float = unsafe { transmute::<u32, [u8; 4]>(int) };
[INFO] [stdout] 203 +         let float = unsafe { u32::to_ne_bytes(int) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/./connection/user.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | /         socket.send_to(
[INFO] [stdout] 25 | |             &buffer.array()[..buffer.position()],
[INFO] [stdout] 26 | |             self.get_address().to_string(),
[INFO] [stdout] 27 | |         );
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/./connection/user.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         socket.send_to(&buffer.array()[..buffer.position()], self.get_address().to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/./connection/user.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | /         socket.send_to(
[INFO] [stdout] 25 | |             &buffer.array()[..buffer.position()],
[INFO] [stdout] 26 | |             self.get_address().to_string(),
[INFO] [stdout] 27 | |         );
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/./connection/user.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         socket.send_to(&buffer.array()[..buffer.position()], self.get_address().to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.00s
[INFO] running `Command { std: "docker" "inspect" "2281155da23b559837d845bf1964eedc61e7210256da04b788ef15ec17fb01be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2281155da23b559837d845bf1964eedc61e7210256da04b788ef15ec17fb01be", kill_on_drop: false }`
[INFO] [stdout] 2281155da23b559837d845bf1964eedc61e7210256da04b788ef15ec17fb01be
