[INFO] cloning repository https://github.com/Exopteron/opengl-classic-client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Exopteron/opengl-classic-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FExopteron%2Fopengl-classic-client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FExopteron%2Fopengl-classic-client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 56b9fba2f61dc672781f92ae18e9108160088bed
[INFO] checking Exopteron/opengl-classic-client against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FExopteron%2Fopengl-classic-client" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Exopteron/opengl-classic-client on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Exopteron/opengl-classic-client
[INFO] finished tweaking git repo https://github.com/Exopteron/opengl-classic-client
[INFO] tweaked toml for git repo https://github.com/Exopteron/opengl-classic-client written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Exopteron/opengl-classic-client 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quote v1.0.16
[INFO] [stderr]   Downloaded ndk-macro v0.2.0
[INFO] [stderr]   Downloaded owned_ttf_parser v0.6.0
[INFO] [stderr]   Downloaded encoding_index_tests v0.1.4
[INFO] [stderr]   Downloaded bytemuck v1.8.0
[INFO] [stderr]   Downloaded libloading v0.7.3
[INFO] [stderr]   Downloaded xcursor v0.3.4
[INFO] [stderr]   Downloaded nanorand v0.7.0
[INFO] [stderr]   Downloaded cgl v0.3.2
[INFO] [stderr]   Downloaded mio-misc v1.2.2
[INFO] [stderr]   Downloaded futures-sink v0.3.21
[INFO] [stderr]   Downloaded num-iter v0.1.42
[INFO] [stderr]   Downloaded andrew v0.3.1
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.79
[INFO] [stderr]   Downloaded cmake v0.1.48
[INFO] [stderr]   Downloaded dlib v0.4.2
[INFO] [stderr]   Downloaded socket2 v0.4.4
[INFO] [stderr]   Downloaded ndk v0.3.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.79
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.32.0
[INFO] [stderr]   Downloaded freetype-sys v0.13.1
[INFO] [stderr]   Downloaded windows-sys v0.32.0
[INFO] [stderr]   Downloaded glam v0.20.2
[INFO] [stderr]   Downloaded named-binary-tag v0.6.0
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.5
[INFO] [stderr]   Downloaded windows_i686_gnu v0.32.0
[INFO] [stderr]   Downloaded winit v0.25.0
[INFO] [stderr]   Downloaded libc v0.2.120
[INFO] [stderr]   Downloaded tokio v1.17.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.32.0
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.32.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.32.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.79
[INFO] [stderr]   Downloaded ntapi v0.3.7
[INFO] [stderr]   Downloaded rayon v1.5.1
[INFO] [stderr]   Downloaded nix v0.20.0
[INFO] [stderr]   Downloaded syn v1.0.89
[INFO] [stderr]   Downloaded nix v0.18.0
[INFO] [stderr]   Downloaded ndk-sys v0.2.2
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.3
[INFO] [stderr]   Downloaded rayon-core v1.9.1
[INFO] [stderr]   Downloaded freetype-rs v0.26.0
[INFO] [stderr]   Downloaded x11-dl v2.19.1
[INFO] [stderr]   Downloaded bumpalo v3.9.1
[INFO] [stderr]   Downloaded glutin v0.27.0
[INFO] [stderr]   Downloaded mio v0.8.2
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.0
[INFO] [stderr]   Downloaded ttf-parser v0.6.2
[INFO] [stderr]   Downloaded encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]   Downloaded encoding-index-japanese v1.20141219.5
[INFO] [stderr]   Downloaded encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]   Downloaded wayland-protocols v0.28.6
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.79
[INFO] [stderr]   Downloaded js-sys v0.3.56
[INFO] [stderr]   Downloaded encoding-index-korean v1.20141219.5
[INFO] [stderr]   Downloaded core-foundation-sys v0.8.3
[INFO] [stderr]   Downloaded rusttype v0.9.2
[INFO] [stderr]   Downloaded raw-window-handle v0.4.2
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.7
[INFO] [stderr]   Downloaded glutin_emscripten_sys v0.1.1
[INFO] [stderr]   Downloaded xml-rs v0.8.4
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.3
[INFO] [stderr]   Downloaded gl v0.14.0
[INFO] [stderr]   Downloaded gif v0.11.3
[INFO] [stderr]   Downloaded core-video-sys v0.1.4
[INFO] [stderr]   Downloaded cocoa v0.24.0
[INFO] [stderr]   Downloaded glutin_gles2_sys v0.1.5
[INFO] [stderr]   Downloaded core-graphics v0.19.2
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.5
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.8
[INFO] [stderr]   Downloaded env_logger v0.9.0
[INFO] [stderr]   Downloaded weezl v0.1.5
[INFO] [stderr]   Downloaded pin-project-internal v1.0.10
[INFO] [stderr]   Downloaded flate2 v1.0.22
[INFO] [stderr]   Downloaded lock_api v0.4.6
[INFO] [stderr]   Downloaded ahash v0.7.6
[INFO] [stderr]   Downloaded memmap2 v0.1.0
[INFO] [stderr]   Downloaded tokio-macros v1.7.0
[INFO] [stderr]   Downloaded dispatch v0.2.0
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.5
[INFO] [stderr]   Downloaded wayland-cursor v0.28.6
[INFO] [stderr]   Downloaded gl_generator v0.14.0
[INFO] [stderr]   Downloaded wayland-scanner v0.28.6
[INFO] [stderr]   Downloaded wayland-commons v0.28.6
[INFO] [stderr]   Downloaded ndk-glue v0.3.0
[INFO] [stderr]   Downloaded pin-project v1.0.10
[INFO] [stderr]   Downloaded flume v0.10.12
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.1
[INFO] [stderr]   Downloaded nom v7.1.1
[INFO] [stderr]   Downloaded variant_count v1.1.0
[INFO] [stderr]   Downloaded core-graphics-types v0.1.1
[INFO] [stderr]   Downloaded libloading v0.6.7
[INFO] [stderr]   Downloaded encoding v0.2.33
[INFO] [stderr]   Downloaded raw-window-handle v0.3.4
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.79
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.1.5
[INFO] [stderr]   Downloaded parking_lot_core v0.9.1
[INFO] [stderr]   Downloaded crossbeam v0.8.1
[INFO] [stderr]   Downloaded wayland-client v0.28.6
[INFO] [stderr]   Downloaded wayland-egl v0.28.6
[INFO] [stderr]   Downloaded core-foundation-sys v0.7.0
[INFO] [stderr]   Downloaded enum-iterator v0.7.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.8
[INFO] [stderr]   Downloaded num_enum v0.5.7
[INFO] [stderr]   Downloaded enum-iterator-derive v0.7.0
[INFO] [stderr]   Downloaded dlib v0.5.0
[INFO] [stderr]   Downloaded num_cpus v1.13.1
[INFO] [stderr]   Downloaded redox_users v0.4.2
[INFO] [stderr]   Downloaded core-foundation v0.7.0
[INFO] [stderr]   Downloaded num_enum_derive v0.5.7
[INFO] [stderr]   Downloaded futures-core v0.3.21
[INFO] [stderr]   Downloaded parking_lot v0.12.0
[INFO] [stderr]   Downloaded xdg v2.4.1
[INFO] [stderr]   Downloaded calloop v0.6.5
[INFO] [stderr]   Downloaded proc-macro-crate v1.1.3
[INFO] [stderr]   Downloaded wayland-sys v0.28.6
[INFO] [stderr]   Downloaded encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]   Downloaded cty v0.2.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 47755ce6b324ecac3c1cb03377e9207a474c431447aaf9cbbe5d3cb73bb3fd30
[INFO] running `Command { std: "docker" "start" "-a" "47755ce6b324ecac3c1cb03377e9207a474c431447aaf9cbbe5d3cb73bb3fd30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "47755ce6b324ecac3c1cb03377e9207a474c431447aaf9cbbe5d3cb73bb3fd30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "47755ce6b324ecac3c1cb03377e9207a474c431447aaf9cbbe5d3cb73bb3fd30", kill_on_drop: false }`
[INFO] [stdout] 47755ce6b324ecac3c1cb03377e9207a474c431447aaf9cbbe5d3cb73bb3fd30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1678514c91fe4ccb3f57425f511bf4f842018dfeeee9238a49a7a2ae4acfe091
[INFO] running `Command { std: "docker" "start" "-a" "1678514c91fe4ccb3f57425f511bf4f842018dfeeee9238a49a7a2ae4acfe091", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.120
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]     Checking lock_api v0.4.6
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.5
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking crossbeam-channel v0.5.3
[INFO] [stderr]     Checking walkdir v2.3.2
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.1
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking raw-window-handle v0.4.2
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]    Compiling cmake v0.1.48
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking weezl v0.1.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking getrandom v0.2.5
[INFO] [stderr]     Checking xdg v2.4.1
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]     Checking mio-misc v1.2.2
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.56
[INFO] [stderr]     Checking gif v0.11.3
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking flate2 v1.0.22
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]     Checking regex v1.5.5
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking spin v0.9.2
[INFO] [stderr]     Checking bytemuck v1.8.0
[INFO] [stderr]     Checking pin-project-lite v0.2.8
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking named-binary-tag v0.6.0
[INFO] [stderr]     Checking freetype-rs v0.26.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]     Checking glam v0.20.2
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling enum-iterator-derive v0.7.0
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling variant_count v1.1.0
[INFO] [stderr]     Checking enum-iterator v0.7.0
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking wayland-egl v0.28.6
[INFO] [stderr]     Checking tokio v1.17.0
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking flume v0.10.12
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking glutin v0.27.0
[INFO] [stderr]     Checking exoglgame v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `rc::Rc`
[INFO] [stdout]  --> src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `VirtualKeyCode`
[INFO] [stdout]  --> src/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     event::{Event, VirtualKeyCode},
[INFO] [stdout]   |             ^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `engine::GameEngine`, `render::stage::RenderStageObj`
[INFO] [stdout]   --> src/main.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{game::{engine::GameEngine, CubeGame}, render::stage::RenderStageObj, util::logging};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `marker::PhantomData`
[INFO] [stdout]  --> src/game/engine/mod.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, cell::RefCell, marker::PhantomData, time::Duration};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderStageObj`
[INFO] [stdout]  --> src/game/engine/mod.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::render::{stage::{RenderStageObj, RenderStage}, RenderEngine, window::GameWindow};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glutin::event::KeyboardInput`
[INFO] [stdout]  --> src/game/engine/input/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glutin::event::KeyboardInput;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec4`, `const_vec2`
[INFO] [stdout]  --> src/game/mesh/database.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Vec4, Vec2, vec2, const_vec2};
[INFO] [stdout]   |                  ^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::anyhow`
[INFO] [stdout]  --> src/game/network/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::anyhow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::io::VarInt`
[INFO] [stdout]  --> src/game/network/codec.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::io::VarInt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/game/network/io.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, bail, Context};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderTrap`, `Encoding`, `all::UTF_16BE`
[INFO] [stdout]  --> src/game/network/io.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use encoding::{all::UTF_16BE, EncoderTrap, Encoding};
[INFO] [stdout]   |                ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Serialize`, `de::DeserializeOwned`
[INFO] [stdout]  --> src/game/network/io.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{de::DeserializeOwned, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `rc::Rc`
[INFO] [stdout]  --> src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromIterator`, `collections::BTreeMap`, `fmt::Display`
[INFO] [stdout]   --> src/game/network/io.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     collections::BTreeMap,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     convert::{TryFrom, TryInto},
[INFO] [stdout] 11 |     fmt::Display,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 12 |     io::{self, Cursor, Read, Write},
[INFO] [stdout] 13 |     iter::{self, FromIterator},
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packets`
[INFO] [stdout]   --> src/game/network/packets.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) use packets;
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `VirtualKeyCode`
[INFO] [stdout]  --> src/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     event::{Event, VirtualKeyCode},
[INFO] [stdout]   |             ^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `discriminant_to_literal`
[INFO] [stdout]   --> src/game/network/packets.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 | macro_rules! discriminant_to_literal {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `def_enum`
[INFO] [stdout]   --> src/game/network/packets.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 | macro_rules! def_enum {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packet_enum`
[INFO] [stdout]    --> src/game/network/packets.rs:275:16
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub(crate) use packet_enum;
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `engine::GameEngine`, `render::stage::RenderStageObj`
[INFO] [stdout]   --> src/main.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{game::{engine::GameEngine, CubeGame}, render::stage::RenderStageObj, util::logging};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]    --> src/game/network/packets.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | use std::ops::Deref;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Writeable`
[INFO] [stdout]    --> src/game/network/packets.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 | use super::Writeable;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `marker::PhantomData`
[INFO] [stdout]  --> src/game/engine/mod.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{rc::Rc, cell::RefCell, marker::PhantomData, time::Duration};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/game/network/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderStageObj`
[INFO] [stdout]  --> src/game/engine/mod.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::render::{stage::{RenderStageObj, RenderStage}, RenderEngine, window::GameWindow};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glutin::event::KeyboardInput`
[INFO] [stdout]  --> src/game/engine/input/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glutin::event::KeyboardInput;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `net::SocketAddr`, `sync::Arc`
[INFO] [stdout]  --> src/game/network/client/worker.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::{Debug, Write}, io, net::SocketAddr, sync::Arc, time::Duration};
[INFO] [stdout]   |                        ^^^^^       ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec4`, `const_vec2`
[INFO] [stdout]  --> src/game/mesh/database.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Vec4, Vec2, vec2, const_vec2};
[INFO] [stdout]   |                  ^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any`
[INFO] [stdout]  --> src/game/network/client/handle.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::anyhow`
[INFO] [stdout]  --> src/game/network/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::anyhow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4`, `vec4`
[INFO] [stdout]  --> src/game/render_stages/world.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{vec4, Vec4, Mat4, Vec2};
[INFO] [stdout]   |            ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::io::VarInt`
[INFO] [stdout]  --> src/game/network/codec.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::io::VarInt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockPosition`, `Block`, `FlatWorldGenerator`
[INFO] [stdout]  --> src/game/render_stages/world.rs:5:175
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ram}}, game::{CubeGame, world::{World, FlatWorldGenerator, ChunkPosition, Block, BlockPosition}, mesh::MeshBuilder, texture::TerrainAt...
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^^^^                 ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/game/network/io.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, bail, Context};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3`, `Mat4`
[INFO] [stdout]  --> src/game/render_stages/sky.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec4, Vec4, Mat4, Mat3};
[INFO] [stdout]   |                        ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderTrap`, `Encoding`, `all::UTF_16BE`
[INFO] [stdout]  --> src/game/network/io.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use encoding::{all::UTF_16BE, EncoderTrap, Encoding};
[INFO] [stdout]   |                ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem`
[INFO] [stdout]  --> src/game/render_stages/text.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem, ffi::c_void};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Serialize`, `de::DeserializeOwned`
[INFO] [stdout]  --> src/game/network/io.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{de::DeserializeOwned, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3`, `Vec4`, `vec3`, `vec4`
[INFO] [stdout]  --> src/game/render_stages/text.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{vec4, Vec4, Mat4, Mat3, Vec2, IVec2, ivec2, Vec3, vec2, vec3};
[INFO] [stdout]   |            ^^^^  ^^^^        ^^^^                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/game/texture/mod.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromIterator`, `collections::BTreeMap`, `fmt::Display`
[INFO] [stdout]   --> src/game/network/io.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     collections::BTreeMap,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     convert::{TryFrom, TryInto},
[INFO] [stdout] 11 |     fmt::Display,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 12 |     io::{self, Cursor, Read, Write},
[INFO] [stdout] 13 |     iter::{self, FromIterator},
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLockReadGuard`
[INFO] [stdout]  --> src/game/world/mod.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::Write, sync::{RwLock, Arc, RwLockReadGuard}};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packets`
[INFO] [stdout]   --> src/game/network/packets.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) use packets;
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ops::Mul`, `ptr`
[INFO] [stdout]  --> src/render/opengl/buffer/multi.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::Mul, mem, ptr};
[INFO] [stdout]   |           ^^^^^^^^       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `discriminant_to_literal`
[INFO] [stdout]   --> src/game/network/packets.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 | macro_rules! discriminant_to_literal {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mem`, `ptr`
[INFO] [stdout]  --> src/render/opengl/context.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ptr, ffi::c_void, mem, pin::Pin};
[INFO] [stdout]   |           ^^^               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `def_enum`
[INFO] [stdout]   --> src/game/network/packets.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 | macro_rules! def_enum {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packet_enum`
[INFO] [stdout]    --> src/game/network/packets.rs:275:16
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub(crate) use packet_enum;
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefMut`, `any::Any`, `sync::Arc`
[INFO] [stdout]  --> src/render/stage.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::{RefCell, RefMut}, rc::Rc, any::Any, sync::Arc};
[INFO] [stdout]   |                           ^^^^^^           ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]    --> src/game/network/packets.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | use std::ops::Deref;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Writeable`
[INFO] [stdout]    --> src/game/network/packets.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 | use super::Writeable;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/game/network/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `net::SocketAddr`, `sync::Arc`
[INFO] [stdout]  --> src/game/network/client/worker.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::{Debug, Write}, io, net::SocketAddr, sync::Arc, time::Duration};
[INFO] [stdout]   |                        ^^^^^       ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any`
[INFO] [stdout]  --> src/game/network/client/handle.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4`, `vec4`
[INFO] [stdout]  --> src/game/render_stages/world.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{vec4, Vec4, Mat4, Vec2};
[INFO] [stdout]   |            ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockPosition`, `Block`, `FlatWorldGenerator`
[INFO] [stdout]  --> src/game/render_stages/world.rs:5:175
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ram}}, game::{CubeGame, world::{World, FlatWorldGenerator, ChunkPosition, Block, BlockPosition}, mesh::MeshBuilder, texture::TerrainAt...
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^^^^                 ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3`, `Mat4`
[INFO] [stdout]  --> src/game/render_stages/sky.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec4, Vec4, Mat4, Mat3};
[INFO] [stdout]   |                        ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem`
[INFO] [stdout]  --> src/game/render_stages/text.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem, ffi::c_void};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3`, `Vec4`, `vec3`, `vec4`
[INFO] [stdout]  --> src/game/render_stages/text.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{vec4, Vec4, Mat4, Mat3, Vec2, IVec2, ivec2, Vec3, vec2, vec3};
[INFO] [stdout]   |            ^^^^  ^^^^        ^^^^                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/game/texture/mod.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLockReadGuard`
[INFO] [stdout]  --> src/game/world/mod.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::Write, sync::{RwLock, Arc, RwLockReadGuard}};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ops::Mul`, `ptr`
[INFO] [stdout]  --> src/render/opengl/buffer/multi.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::Mul, mem, ptr};
[INFO] [stdout]   |           ^^^^^^^^       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mem`, `ptr`
[INFO] [stdout]  --> src/render/opengl/context.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ptr, ffi::c_void, mem, pin::Pin};
[INFO] [stdout]   |           ^^^               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefMut`, `any::Any`, `sync::Arc`
[INFO] [stdout]  --> src/render/stage.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::{RefCell, RefMut}, rc::Rc, any::Any, sync::Arc};
[INFO] [stdout]   |                           ^^^^^^           ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/game/mod.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut world = package.world;
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/game/mod.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut world = package.world;
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cube`
[INFO] [stdout]   --> src/game/mod.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_cube`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:65:35
[INFO] [stdout]    |
[INFO] [stdout] 65 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cube`
[INFO] [stdout]   --> src/game/mod.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_cube`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/game/mod.rs:65:43
[INFO] [stdout]    |
[INFO] [stdout] 65 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:65:35
[INFO] [stdout]    |
[INFO] [stdout] 65 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/game/mod.rs:65:43
[INFO] [stdout]    |
[INFO] [stdout] 65 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:70:35
[INFO] [stdout]    |
[INFO] [stdout] 70 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:70:35
[INFO] [stdout]    |
[INFO] [stdout] 70 |         engine.add_event_handler(|engine, window, cube, event| {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:85:40
[INFO] [stdout]    |
[INFO] [stdout] 85 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/game/mod.rs:85:40
[INFO] [stdout]    |
[INFO] [stdout] 85 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/mod.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 let mut current_time = Instant::now();
[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: `engine`
[INFO] [stdout]    --> src/game/mod.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/mod.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 let mut current_time = Instant::now();
[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: `window`
[INFO] [stdout]    --> src/game/mod.rs:104:48
[INFO] [stdout]     |
[INFO] [stdout] 104 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]     |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]    --> src/game/mod.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]    --> src/game/mod.rs:104:48
[INFO] [stdout]     |
[INFO] [stdout] 104 |         engine.add_event_handler(move |engine, window, cube, event| {
[INFO] [stdout]     |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game/mod.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut world = package.world;
[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/game/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut world = World::from_file("big.cw").unwrap();
[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/game/mod.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut world = package.world;
[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/game/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut world = World::from_file("big.cw").unwrap();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/game/network/client/worker.rs:76:24
[INFO] [stdout]    |
[INFO] [stdout] 76 |             if let Err(e) = result {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/game/network/client/worker.rs:76:24
[INFO] [stdout]    |
[INFO] [stdout] 76 |             if let Err(e) = result {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/network/client/handshake.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut world_size_x: i16;
[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/game/network/client/handshake.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut world_size_y: i16;
[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/game/network/client/handshake.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut world_size_z: i16;
[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/game/network/client/handshake.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut world_size_x: i16;
[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/game/network/client/handshake.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut world_size_y: i16;
[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/game/network/client/handshake.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut world_size_z: i16;
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/game/network/codec.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{Cursor, Read};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]  --> src/game/world/mod.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::Write, sync::{RwLock, Arc, RwLockReadGuard}};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/game/network/client/handshake.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{Cursor, Write, Read};
[INFO] [stdout]   |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/game/network/codec.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{Cursor, Read};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]  --> src/game/world/mod.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::Write, sync::{RwLock, Arc, RwLockReadGuard}};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/game/network/client/handshake.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{Cursor, Write, Read};
[INFO] [stdout]   |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/game/mesh/mod.rs:108:24
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     if let MeshBuilderTask::BuildChunk { world, position, sender } = m {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/game/mesh/mod.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let len = len - self.tasks.len();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/game/mesh/mod.rs:108:24
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     if let MeshBuilderTask::BuildChunk { world, position, sender } = m {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `length`
[INFO] [stdout]   --> src/game/network/codec.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let length = self.staging_buf.len() as i32;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_index`
[INFO] [stdout]   --> src/game/network/codec.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let start_index = self.received_buf.len();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/game/mesh/mod.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let len = len - self.tasks.len();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `length`
[INFO] [stdout]   --> src/game/network/codec.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let length = self.staging_buf.len() as i32;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_index`
[INFO] [stdout]   --> src/game/network/codec.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let start_index = self.received_buf.len();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/game/render_stages/world.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut start = Instant::now();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/game/render_stages/world.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let end = Instant::now();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/world.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut start = Instant::now();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/world.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/world.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut mesh = MeshBuilder::default();
[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/game/render_stages/world.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |             let mut vbo = VertexBuffer::new(gl::DYNAMIC_DRAW);
[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/game/render_stages/world.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let mut texcoords = VertexBuffer::new(gl::DYNAMIC_DRAW);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/game/render_stages/world.rs:65:46
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn run(&mut self, engine: &mut CubeGame, window: &mut crate::render::window::GameWindow) -> anyhow::Result<()> {
[INFO] [stdout]    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/sky.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/text.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/text.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let mut vertices = VertexBuffer::new(gl::DYNAMIC_DRAW);
[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/game/render_stages/text.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let mut texcoords = VertexBuffer::new(gl::DYNAMIC_DRAW);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]    --> src/game/render_stages/text.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     unsafe fn render_text(&mut self, engine: &mut CubeGame, text: String, mut x: f32, mut y: f32, scale: f32, color: Vec3) {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/game/render_stages/world.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut start = Instant::now();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/game/render_stages/world.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let end = Instant::now();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/world.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut start = Instant::now();
[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/game/render_stages/text.rs:110:87
[INFO] [stdout]     |
[INFO] [stdout] 110 |     unsafe fn render_text(&mut self, engine: &mut CubeGame, text: String, mut x: f32, mut y: f32, scale: f32, color: Vec3) {
[INFO] [stdout]     |                                                                                       ----^
[INFO] [stdout]     |                                                                                       |
[INFO] [stdout]     |                                                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/world.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/world.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let mut mesh = MeshBuilder::default();
[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/game/render_stages/world.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |             let mut vbo = VertexBuffer::new(gl::DYNAMIC_DRAW);
[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/game/render_stages/world.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let mut texcoords = VertexBuffer::new(gl::DYNAMIC_DRAW);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/game/render_stages/world.rs:65:46
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn run(&mut self, engine: &mut CubeGame, window: &mut crate::render::window::GameWindow) -> anyhow::Result<()> {
[INFO] [stdout]    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/sky.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/game/render_stages/text.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn init(w: &mut GameWindow) -> Self {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/render_stages/text.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let mut vertices = VertexBuffer::new(gl::DYNAMIC_DRAW);
[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/game/render_stages/text.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let mut texcoords = VertexBuffer::new(gl::DYNAMIC_DRAW);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]    --> src/game/render_stages/text.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     unsafe fn render_text(&mut self, engine: &mut CubeGame, text: String, mut x: f32, mut y: f32, scale: f32, color: Vec3) {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_x`
[INFO] [stdout]   --> src/game/world/mod.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let spawn_x = spawn.get_i16("X").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_y`
[INFO] [stdout]   --> src/game/world/mod.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let spawn_y = spawn.get_i16("Y").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_z`
[INFO] [stdout]   --> src/game/world/mod.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let spawn_z = spawn.get_i16("Z").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `newworld` is never read
[INFO] [stdout]   --> src/game/world/mod.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut newworld: Vec<u8> = vec![];
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game/render_stages/text.rs:110:87
[INFO] [stdout]     |
[INFO] [stdout] 110 |     unsafe fn render_text(&mut self, engine: &mut CubeGame, text: String, mut x: f32, mut y: f32, scale: f32, color: Vec3) {
[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/game/world/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut world = root_tag.get_i8_vec("BlockArray").ok()?.to_owned();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_x`
[INFO] [stdout]   --> src/game/world/mod.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let spawn_x = spawn.get_i16("X").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_y`
[INFO] [stdout]   --> src/game/world/mod.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let spawn_y = spawn.get_i16("Y").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_z`
[INFO] [stdout]   --> src/game/world/mod.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let spawn_z = spawn.get_i16("Z").ok()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `newworld` is never read
[INFO] [stdout]   --> src/game/world/mod.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut newworld: Vec<u8> = vec![];
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game/world/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut world = root_tag.get_i8_vec("BlockArray").ok()?.to_owned();
[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/render/window/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut context = GlContext::new(gl_window);
[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/render/mod.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn run(mut self, engine: Rc<RefCell<E>>, mut event_handler: impl FnMut(&mut GameWindow, Event<()>) + 'static) {
[INFO] [stdout]    |                ----^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/main.rs:44:23
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn run(&mut self, engine: &mut CubeGame, _window: &mut render::window::GameWindow) -> anyhow::Result<()> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render/window/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut context = GlContext::new(gl_window);
[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:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut engine = CubeGame::new(PhysicalSize::new(1024, 768)).await;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render/mod.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn run(mut self, engine: Rc<RefCell<E>>, mut event_handler: impl FnMut(&mut GameWindow, Event<()>) + 'static) {
[INFO] [stdout]    |                ----^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]   --> src/main.rs:44:23
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn run(&mut self, engine: &mut CubeGame, _window: &mut render::window::GameWindow) -> anyhow::Result<()> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `init` is never used
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl TestRenderer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 23 |     fn init(_window: &mut render::window::GameWindow) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `VERTEX_SHADER` and `FRAGMENT_SHADER` are never used
[INFO] [stdout]   --> src/main.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl TestRenderer {
[INFO] [stdout]    | ----------------- associated constants in this implementation
[INFO] [stdout] 56 |     const VERTEX_SHADER: &'static str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     const FRAGMENT_SHADER: &'static str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `database` is never read
[INFO] [stdout]   --> src/game/mesh/mod.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct MeshBuilder {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 93 |     database: Arc<BlockMeshDatabase>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clone_with_settings` and `data_uncompressed` are never used
[INFO] [stdout]   --> src/game/network/codec.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Codec {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn clone_with_settings(&self) -> Codec {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn data_uncompressed(&mut self) -> (usize, &[u8]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShortPrefixedVec` is never used
[INFO] [stdout]    --> src/game/network/io.rs:386:10
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub type ShortPrefixedVec<'a, T> = LengthPrefixedVec<'a, u16, T>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read` is never used
[INFO] [stdout]   --> src/game/network/client/mod.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Client {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn read(&mut self) -> anyhow::Result<ServerPlayPacket> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `packets_to_send` and `received_packets` are never used
[INFO] [stdout]   --> src/game/network/client/worker.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ClientWorker {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn packets_to_send(&self) -> Sender<ClientPlayPacket> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn received_packets(&self) -> Receiver<ServerPlayPacket> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disconnected_message` is never used
[INFO] [stdout]    --> src/game/network/client/worker.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn disconnected_message(e: anyhow::Error) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut engine = CubeGame::new(PhysicalSize::new(1024, 768)).await;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | / packet_enum!(ClientPlayPacket {
[INFO] [stdout] 73  | |     0x00 = PlayerIdentification,
[INFO] [stdout] 74  | |     0x08 = PositionAndOrientation,
[INFO] [stdout] 75  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:77:1
[INFO] [stdout]     |
[INFO] [stdout] 77  | / packet_enum!(ServerPlayPacket {
[INFO] [stdout] 78  | |     0x01 = Ping,
[INFO] [stdout] 79  | |     0x0D = Message,
[INFO] [stdout] 80  | |     0x07 = SpawnPlayer,
[INFO] [stdout] 81  | |     0x08 = PlayerTeleport,
[INFO] [stdout] 82  | |     0x06 = SetBlock
[INFO] [stdout] 83  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout] 85  | / packet_enum!(ServerLoginPacket {
[INFO] [stdout] 86  | |     0x00 = ServerIdentification,
[INFO] [stdout] 87  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout] 89  | / packet_enum!(ServerWorldPacket {
[INFO] [stdout] 90  | |     0x02 = LevelInitialize,
[INFO] [stdout] 91  | |     0x03 = LevelDataChunk,
[INFO] [stdout] 92  | |     0x04 = LevelFinalize
[INFO] [stdout] 93  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]   --> src/game/render_stages/world.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |             const SIZE: f32 = 2.0;
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/game/world/mod.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 74  | impl World {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(generator: impl WorldGenerator, width: usize, height: usize, length: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/game/world/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl FlatWorldGenerator {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 200 |     pub fn new(height: usize, below: u8, surface: u8, above: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `len` is never read
[INFO] [stdout]  --> src/render/opengl/buffer/multi.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct MultibufferObject {
[INFO] [stdout]   |        ----------------- field in this struct
[INFO] [stdout] 7 |     offset: usize,
[INFO] [stdout] 8 |     len: usize,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `init` is never used
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl TestRenderer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 23 |     fn init(_window: &mut render::window::GameWindow) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `VERTEX_SHADER` and `FRAGMENT_SHADER` are never used
[INFO] [stdout]   --> src/main.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl TestRenderer {
[INFO] [stdout]    | ----------------- associated constants in this implementation
[INFO] [stdout] 56 |     const VERTEX_SHADER: &'static str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     const FRAGMENT_SHADER: &'static str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `database` is never read
[INFO] [stdout]   --> src/game/mesh/mod.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct MeshBuilder {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 93 |     database: Arc<BlockMeshDatabase>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clone_with_settings` and `data_uncompressed` are never used
[INFO] [stdout]   --> src/game/network/codec.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Codec {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn clone_with_settings(&self) -> Codec {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn data_uncompressed(&mut self) -> (usize, &[u8]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShortPrefixedVec` is never used
[INFO] [stdout]    --> src/game/network/io.rs:386:10
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub type ShortPrefixedVec<'a, T> = LengthPrefixedVec<'a, u16, T>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read` is never used
[INFO] [stdout]   --> src/game/network/client/mod.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Client {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn read(&mut self) -> anyhow::Result<ServerPlayPacket> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `packets_to_send` and `received_packets` are never used
[INFO] [stdout]   --> src/game/network/client/worker.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ClientWorker {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn packets_to_send(&self) -> Sender<ClientPlayPacket> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn received_packets(&self) -> Receiver<ServerPlayPacket> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disconnected_message` is never used
[INFO] [stdout]    --> src/game/network/client/worker.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn disconnected_message(e: anyhow::Error) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | / packet_enum!(ClientPlayPacket {
[INFO] [stdout] 73  | |     0x00 = PlayerIdentification,
[INFO] [stdout] 74  | |     0x08 = PositionAndOrientation,
[INFO] [stdout] 75  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:77:1
[INFO] [stdout]     |
[INFO] [stdout] 77  | / packet_enum!(ServerPlayPacket {
[INFO] [stdout] 78  | |     0x01 = Ping,
[INFO] [stdout] 79  | |     0x0D = Message,
[INFO] [stdout] 80  | |     0x07 = SpawnPlayer,
[INFO] [stdout] 81  | |     0x08 = PlayerTeleport,
[INFO] [stdout] 82  | |     0x06 = SetBlock
[INFO] [stdout] 83  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:85:1
[INFO] [stdout]     |
[INFO] [stdout] 85  | / packet_enum!(ServerLoginPacket {
[INFO] [stdout] 86  | |     0x00 = ServerIdentification,
[INFO] [stdout] 87  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/game/network/packets.rs:213:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |           impl $ident {
[INFO] [stdout]     |           ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |                           pub fn name(&self) -> String {
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/network/client/packet.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout] 89  | / packet_enum!(ServerWorldPacket {
[INFO] [stdout] 90  | |     0x02 = LevelInitialize,
[INFO] [stdout] 91  | |     0x03 = LevelDataChunk,
[INFO] [stdout] 92  | |     0x04 = LevelFinalize
[INFO] [stdout] 93  | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `packet_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]   --> src/game/render_stages/world.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |             const SIZE: f32 = 2.0;
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/game/world/mod.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 74  | impl World {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(generator: impl WorldGenerator, width: usize, height: usize, length: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/game/world/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl FlatWorldGenerator {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 200 |     pub fn new(height: usize, below: u8, surface: u8, above: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `len` is never read
[INFO] [stdout]  --> src/render/opengl/buffer/multi.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct MultibufferObject {
[INFO] [stdout]   |        ----------------- field in this struct
[INFO] [stdout] 7 |     offset: usize,
[INFO] [stdout] 8 |     len: usize,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game/mod.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     window.set_cursor_grabbed(!grabbed);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     let _ = window.set_cursor_grabbed(!grabbed);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SPEED` should have a snake case name
[INFO] [stdout]    --> src/game/mod.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let SPEED: f32 = 3. * 1000.;
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `speed`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SPEED` should have a snake case name
[INFO] [stdout]    --> src/game/mod.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let SPEED = SPEED * engine.delta_time().as_secs_f32();
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `speed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game/mod.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     window.set_cursor_grabbed(!grabbed);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     let _ = window.set_cursor_grabbed(!grabbed);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SPEED` should have a snake case name
[INFO] [stdout]    --> src/game/mod.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let SPEED: f32 = 3. * 1000.;
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `speed`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SPEED` should have a snake case name
[INFO] [stdout]    --> src/game/mod.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let SPEED = SPEED * engine.delta_time().as_secs_f32();
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `speed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 96 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 96 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 16.54s
[INFO] running `Command { std: "docker" "inspect" "1678514c91fe4ccb3f57425f511bf4f842018dfeeee9238a49a7a2ae4acfe091", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1678514c91fe4ccb3f57425f511bf4f842018dfeeee9238a49a7a2ae4acfe091", kill_on_drop: false }`
[INFO] [stdout] 1678514c91fe4ccb3f57425f511bf4f842018dfeeee9238a49a7a2ae4acfe091
