[INFO] cloning repository https://github.com/dandan2611/voidpoc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dandan2611/voidpoc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdandan2611%2Fvoidpoc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdandan2611%2Fvoidpoc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 643c9023d866c32ed2948e1c8963ffbf4a3f57e0
[INFO] checking dandan2611/voidpoc against try#5fee451ebd94296ea05214e819c311e164b30af6 for pr-139042
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdandan2611%2Fvoidpoc" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/dandan2611/voidpoc on toolchain 5fee451ebd94296ea05214e819c311e164b30af6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/dandan2611/voidpoc
[INFO] finished tweaking git repo https://github.com/dandan2611/voidpoc
[INFO] tweaked toml for git repo https://github.com/dandan2611/voidpoc written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/dandan2611/voidpoc 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" "+5fee451ebd94296ea05214e819c311e164b30af6" "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 crab_nbt v0.2.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6b0d438e3cafb473a6c506570f97e105645ad5da1a2ae4afd9315d8c679907aa
[INFO] running `Command { std: "docker" "start" "-a" "6b0d438e3cafb473a6c506570f97e105645ad5da1a2ae4afd9315d8c679907aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b0d438e3cafb473a6c506570f97e105645ad5da1a2ae4afd9315d8c679907aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b0d438e3cafb473a6c506570f97e105645ad5da1a2ae4afd9315d8c679907aa", kill_on_drop: false }`
[INFO] [stdout] 6b0d438e3cafb473a6c506570f97e105645ad5da1a2ae4afd9315d8c679907aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 97ca760af92a9b04a17fda2dd617c4adbeeae977c7d7ee004f511b9ecc411dd6
[INFO] running `Command { std: "docker" "start" "-a" "97ca760af92a9b04a17fda2dd617c4adbeeae977c7d7ee004f511b9ecc411dd6", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling libc v0.2.170
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling serde v1.0.218
[INFO] [stderr]     Checking miniz_oxide v0.8.5
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking bytes v1.10.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking cesu8 v1.1.0
[INFO] [stderr]     Checking flate2 v1.1.0
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking ryu v1.0.19
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling quote v1.0.39
[INFO] [stderr]    Compiling simd_cesu8 v1.0.1
[INFO] [stderr]    Compiling syn v2.0.99
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking uuid v1.15.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.218
[INFO] [stderr]    Compiling simdnbt-derive v0.7.0
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking simdnbt v0.7.1
[INFO] [stderr]     Checking crab_nbt v0.2.9
[INFO] [stderr]     Checking voidpoc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/configuration.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/configuration.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseNbt`, `NbtCompound`, and `NbtTag`
[INFO] [stdout]  --> src/configuration.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use simdnbt::owned::{BaseNbt, Nbt, NbtCompound, NbtTag};
[INFO] [stdout]   |                      ^^^^^^^       ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseNbt`, `NbtCompound`, and `NbtTag`
[INFO] [stdout]  --> src/configuration.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use simdnbt::owned::{BaseNbt, Nbt, NbtCompound, NbtTag};
[INFO] [stdout]   |                      ^^^^^^^       ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/play.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::ReadDir`
[INFO] [stdout]  --> src/play.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::ReadDir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crab_nbt::nbt`
[INFO] [stdout]  --> src/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crab_nbt::nbt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseNbt`, `NbtCompound`, and `NbtTag`
[INFO] [stdout]  --> src/play.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use simdnbt::owned::{BaseNbt, Nbt, NbtCompound, NbtTag};
[INFO] [stdout]   |                      ^^^^^^^       ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:643:16
[INFO] [stdout]     |
[INFO] [stdout] 643 |             if (t.is_none()) {
[INFO] [stdout]     |                ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 643 -             if (t.is_none()) {
[INFO] [stdout] 643 +             if t.is_none() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/play.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::ReadDir`
[INFO] [stdout]  --> src/play.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::ReadDir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crab_nbt::nbt`
[INFO] [stdout]  --> src/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crab_nbt::nbt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseNbt`, `NbtCompound`, and `NbtTag`
[INFO] [stdout]  --> src/play.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use simdnbt::owned::{BaseNbt, Nbt, NbtCompound, NbtTag};
[INFO] [stdout]   |                      ^^^^^^^       ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:643:16
[INFO] [stdout]     |
[INFO] [stdout] 643 |             if (t.is_none()) {
[INFO] [stdout]     |                ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 643 -             if (t.is_none()) {
[INFO] [stdout] 643 +             if t.is_none() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BaseNbt`
[INFO] [stdout]    --> src/main.rs:938:30
[INFO] [stdout]     |
[INFO] [stdout] 938 |         use simdnbt::owned::{BaseNbt, NbtCompound, NbtTag};
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:634:17
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:634:17
[INFO] [stdout]     |
[INFO] [stdout] 469 |                 EServerLoginPacket::ServerBoundLoginStartPacket => {
[INFO] [stdout]     |                 ----------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 482 |                 EServerLoginPacket::ServerBoundLoginLoginAcknowledgedPacket => {
[INFO] [stdout]     |                 ----------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 634 |                 _ => {
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:691:17
[INFO] [stdout]     |
[INFO] [stdout] 652 |                 EServerConfigurationPacket::ServerBoundConfigurationAcknowledgeFinishConfiguration => {
[INFO] [stdout]     |                 ---------------------------------------------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 691 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/main.rs:677:25
[INFO] [stdout]     |
[INFO] [stdout] 677 |                     let p = Box::new(ClientBoundPlayChunkDataPacket {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/main.rs:686:25
[INFO] [stdout]     |
[INFO] [stdout] 686 |                     let p = Box::new(ClientBoundPlayPlayerPosition::default());
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:634:17
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:634:17
[INFO] [stdout]     |
[INFO] [stdout] 469 |                 EServerLoginPacket::ServerBoundLoginStartPacket => {
[INFO] [stdout]     |                 ----------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 482 |                 EServerLoginPacket::ServerBoundLoginLoginAcknowledgedPacket => {
[INFO] [stdout]     |                 ----------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 634 |                 _ => {
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:691:17
[INFO] [stdout]     |
[INFO] [stdout] 652 |                 EServerConfigurationPacket::ServerBoundConfigurationAcknowledgeFinishConfiguration => {
[INFO] [stdout]     |                 ---------------------------------------------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 691 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/main.rs:677:25
[INFO] [stdout]     |
[INFO] [stdout] 677 |                     let p = Box::new(ClientBoundPlayChunkDataPacket {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/main.rs:686:25
[INFO] [stdout]     |
[INFO] [stdout] 686 |                     let p = Box::new(ClientBoundPlayPlayerPosition::default());
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/play.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |           let packet: Box<dyn Any> = match id {
[INFO] [stdout]    |  ____________________________________-
[INFO] [stdout] 20 | |             _ => panic!("Unknown packet id"),
[INFO] [stdout] 21 | |         };
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 22 |           let mut packet: Box<T> = packet.downcast::<T>().expect("Failed to downcast Packet");
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/configuration.rs:54:22
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/configuration.rs:57:26
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:150:26
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:173:26
[INFO] [stdout]     |
[INFO] [stdout] 173 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/login.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/login.rs:92:26
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/play.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |           let packet: Box<dyn Any> = match id {
[INFO] [stdout]    |  ____________________________________-
[INFO] [stdout] 20 | |             _ => panic!("Unknown packet id"),
[INFO] [stdout] 21 | |         };
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 22 |           let mut packet: Box<T> = packet.downcast::<T>().expect("Failed to downcast Packet");
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]   --> src/play.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let packet: Box<dyn Any> = match id {
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/play.rs:18:52
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn decode<T: Packet + 'static>(&self, id: i32, buf: &mut ByteBuf) -> Box<T> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:131:26
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:162:26
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/play.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     let mut bs = BitSet::new();
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:242:26
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:264:26
[INFO] [stdout]     |
[INFO] [stdout] 264 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:319:26
[INFO] [stdout]     |
[INFO] [stdout] 319 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/configuration.rs:54:22
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/configuration.rs:57:26
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:150:26
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/configuration.rs:173:26
[INFO] [stdout]     |
[INFO] [stdout] 173 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pack` is more private than the item `ClientBoundConfigurationClientBoundKnownPacks::known_packs`
[INFO] [stdout]   --> src/configuration.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub known_packs: Vec<Pack>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ClientBoundConfigurationClientBoundKnownPacks::known_packs` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Pack` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/configuration.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct Pack {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientConnection<'a>` is more private than the item `read_complete`
[INFO] [stdout]    --> src/main.rs:430:1
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub async fn read_complete<'a>(connection: &mut ClientConnection<'a>, buf: &mut ByteBuf) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `read_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ClientConnection<'a>` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/main.rs:382:1
[INFO] [stdout]     |
[INFO] [stdout] 382 | struct ClientConnection<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ByteBuf` is more private than the item `read_complete`
[INFO] [stdout]    --> src/main.rs:430:1
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub async fn read_complete<'a>(connection: &mut ClientConnection<'a>, buf: &mut ByteBuf) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `read_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ByteBuf` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/main.rs:36:1
[INFO] [stdout]     |
[INFO] [stdout] 36  | struct ByteBuf {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_u64`, `read_f64`, `read_buf`, `write_nbt`, `read_nbt`, and `reset_read_offset` are never used
[INFO] [stdout]    --> src/main.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 41  | impl ByteBuf {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn read_u64(&mut self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn read_f64(&mut self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn read_buf(&mut self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn write_nbt(&mut self, nbt: &Nbt) -> &Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn read_nbt(&mut self) -> Nbt {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn reset_read_offset(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> src/configuration.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct RegistryEntry {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 118 |     pub identifier: String,
[INFO] [stdout] 119 |     pub data: Option<Nbt>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decode` is never used
[INFO] [stdout]   --> src/packet.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl PacketManager {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn decode<T: Packet>(status: PacketStatus, id: i32, buf: &mut ByteBuf) -> Box<T> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimension_names`, `game_mode`, `has_death_location`, `death_dimension_name`, and `death_location` are never read
[INFO] [stdout]   --> src/play.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct ClientBoundPlayLoginPacket {
[INFO] [stdout]    |            -------------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub dimension_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub game_mode: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub has_death_location: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     pub death_dimension_name: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     pub death_location: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkData` is never constructed
[INFO] [stdout]    --> src/play.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct ChunkData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightData` is never constructed
[INFO] [stdout]    --> src/play.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct LightData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/login.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn encode(&self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/login.rs:92:26
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]   --> src/play.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let packet: Box<dyn Any> = match id {
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> src/play.rs:18:52
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn decode<T: Packet + 'static>(&self, id: i32, buf: &mut ByteBuf) -> Box<T> {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:131:26
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:162:26
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/play.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     let mut bs = BitSet::new();
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:242:26
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:264:26
[INFO] [stdout]     |
[INFO] [stdout] 264 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/play.rs:319:26
[INFO] [stdout]     |
[INFO] [stdout] 319 |     fn decode(&mut self, buf: &mut ByteBuf) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pack` is more private than the item `ClientBoundConfigurationClientBoundKnownPacks::known_packs`
[INFO] [stdout]   --> src/configuration.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub known_packs: Vec<Pack>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ClientBoundConfigurationClientBoundKnownPacks::known_packs` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Pack` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/configuration.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct Pack {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientConnection<'a>` is more private than the item `read_complete`
[INFO] [stdout]    --> src/main.rs:430:1
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub async fn read_complete<'a>(connection: &mut ClientConnection<'a>, buf: &mut ByteBuf) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `read_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ClientConnection<'a>` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/main.rs:382:1
[INFO] [stdout]     |
[INFO] [stdout] 382 | struct ClientConnection<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ByteBuf` is more private than the item `read_complete`
[INFO] [stdout]    --> src/main.rs:430:1
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub async fn read_complete<'a>(connection: &mut ClientConnection<'a>, buf: &mut ByteBuf) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `read_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ByteBuf` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/main.rs:36:1
[INFO] [stdout]     |
[INFO] [stdout] 36  | struct ByteBuf {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/main.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout] 41  | impl ByteBuf {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59  |     pub fn pop_front_i8(&mut self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn read_u32(&mut self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn read_u64(&mut self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn read_f32(&mut self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn read_f64(&mut self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn read_buf(&mut self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn write_nbt(&mut self, nbt: &Nbt) -> &Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn cursor_at(&mut self, pos: usize) -> std::io::Cursor<&[u8]> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn read_nbt(&mut self) -> Nbt {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn write_nbt_compound(&mut self, nbt: &NbtCompound) -> &Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn read_nbt_compound(&mut self) -> NbtCompound {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn remaining_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn reset_read_offset(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> src/configuration.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct RegistryEntry {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 118 |     pub identifier: String,
[INFO] [stdout] 119 |     pub data: Option<Nbt>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decode` is never used
[INFO] [stdout]   --> src/packet.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl PacketManager {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn decode<T: Packet>(status: PacketStatus, id: i32, buf: &mut ByteBuf) -> Box<T> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimension_names`, `game_mode`, `has_death_location`, `death_dimension_name`, and `death_location` are never read
[INFO] [stdout]   --> src/play.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct ClientBoundPlayLoginPacket {
[INFO] [stdout]    |            -------------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub dimension_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub game_mode: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub has_death_location: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     pub death_dimension_name: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     pub death_location: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkData` is never constructed
[INFO] [stdout]    --> src/play.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct ChunkData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightData` is never constructed
[INFO] [stdout]    --> src/play.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct LightData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.56s
[INFO] running `Command { std: "docker" "inspect" "97ca760af92a9b04a17fda2dd617c4adbeeae977c7d7ee004f511b9ecc411dd6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97ca760af92a9b04a17fda2dd617c4adbeeae977c7d7ee004f511b9ecc411dd6", kill_on_drop: false }`
[INFO] [stdout] 97ca760af92a9b04a17fda2dd617c4adbeeae977c7d7ee004f511b9ecc411dd6
