[INFO] cloning repository https://github.com/shuntia/PIXEL_REBELS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shuntia/PIXEL_REBELS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuntia%2FPIXEL_REBELS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuntia%2FPIXEL_REBELS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] db917cc40a3c5f96b3f2bdc552c23c504e4ae319
[INFO] checking shuntia/PIXEL_REBELS against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshuntia%2FPIXEL_REBELS" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shuntia/PIXEL_REBELS
[INFO] finished tweaking git repo https://github.com/shuntia/PIXEL_REBELS
[INFO] tweaked toml for git repo https://github.com/shuntia/PIXEL_REBELS written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shuntia/PIXEL_REBELS on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/shuntia/PIXEL_REBELS 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded native-dialog v0.9.0
[INFO] [stderr]   Downloaded versions v7.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5d6b7385a04c72b585a49622efb5f5d1c7c59d93cb0bfa62b24b0c843d5b3a1f
[INFO] running `Command { std: "docker" "start" "-a" "5d6b7385a04c72b585a49622efb5f5d1c7c59d93cb0bfa62b24b0c843d5b3a1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d6b7385a04c72b585a49622efb5f5d1c7c59d93cb0bfa62b24b0c843d5b3a1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d6b7385a04c72b585a49622efb5f5d1c7c59d93cb0bfa62b24b0c843d5b3a1f", kill_on_drop: false }`
[INFO] [stdout] 5d6b7385a04c72b585a49622efb5f5d1c7c59d93cb0bfa62b24b0c843d5b3a1f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b6b26c28cc60a519c4db492748615eb1cf7ffab6797165b7dbc16046b3d7beac
[INFO] running `Command { std: "docker" "start" "-a" "b6b26c28cc60a519c4db492748615eb1cf7ffab6797165b7dbc16046b3d7beac", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]     Checking bytemuck v1.23.0
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.15.3
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling winnow v0.7.10
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking value-bag v1.11.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking async-lock v3.4.0
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking wide v0.7.32
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking env_home v0.1.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking formatx v0.2.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]     Checking ascii v1.1.0
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking ctrlc v3.4.7
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking versions v7.0.0
[INFO] [stderr]     Checking backtrace v0.3.75
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]     Checking polling v3.8.0
[INFO] [stderr]     Checking which v7.0.3
[INFO] [stderr]     Checking async-io v2.4.1
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking macroquad v0.4.14
[INFO] [stderr]     Checking async-global-executor v2.4.1
[INFO] [stderr]     Checking native-dialog v0.9.0
[INFO] [stderr]     Checking async-std v1.13.1
[INFO] [stderr]     Checking num_enum v0.7.3
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking pixel_rebels v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ops::Deref`
[INFO] [stdout]  --> src/model/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ops::Deref,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `telemetry::frame`
[INFO] [stdout]  --> src/model/enemies/mod.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use macroquad::{prelude::*, telemetry::frame};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_mouse_angle` and `self`
[INFO] [stdout]  --> src/model/weapons/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     util::{self, get_mouse_angle, get_mouse_angle_centered},
[INFO] [stdout]   |            ^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameModel`
[INFO] [stdout]  --> src/renderer/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |     model::{GameModel, Status, player::Player},
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameModel`
[INFO] [stdout]  --> src/renderer/ui.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     model::{GameMode, GameModel, SAVE_PATHBUF_CACHE, Status, TitlePhase, player::Player},
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/renderer/world.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_mouse_angle`
[INFO] [stdout]  --> src/renderer/world.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 |     util::{PlayerAnimation, get_mouse_angle, get_mouse_angle_centered},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `telemetry::frame`
[INFO] [stdout]  --> src/renderer/world.rs:9:60
[INFO] [stdout]   |
[INFO] [stdout] 9 | use macroquad::{miniquad::window::screen_size, prelude::*, telemetry::frame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::world::player_on_scr`
[INFO] [stdout]   --> src/util.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::renderer::world::player_on_scr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Deref`
[INFO] [stdout]  --> src/model/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ops::Deref,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `telemetry::frame`
[INFO] [stdout]  --> src/model/enemies/mod.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use macroquad::{prelude::*, telemetry::frame};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_mouse_angle` and `self`
[INFO] [stdout]  --> src/model/weapons/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     util::{self, get_mouse_angle, get_mouse_angle_centered},
[INFO] [stdout]   |            ^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameModel`
[INFO] [stdout]  --> src/renderer/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 |     model::{GameModel, Status, player::Player},
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameModel`
[INFO] [stdout]  --> src/renderer/ui.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     model::{GameMode, GameModel, SAVE_PATHBUF_CACHE, Status, TitlePhase, player::Player},
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/renderer/world.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_mouse_angle`
[INFO] [stdout]  --> src/renderer/world.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 |     util::{PlayerAnimation, get_mouse_angle, get_mouse_angle_centered},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `telemetry::frame`
[INFO] [stdout]  --> src/renderer/world.rs:9:60
[INFO] [stdout]   |
[INFO] [stdout] 9 | use macroquad::{miniquad::window::screen_size, prelude::*, telemetry::frame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::world::player_on_scr`
[INFO] [stdout]   --> src/util.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::renderer::world::player_on_scr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effects`
[INFO] [stdout]   --> src/model/enemies/mod.rs:24:62
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn take_damage(&mut self, damage: super::damage::Damage, effects: Vec<Effects>) -> Nresult {
[INFO] [stdout]    |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effects`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effects`
[INFO] [stdout]   --> src/model/player.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         effects: Vec<super::damage::Effects>,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effects`
[INFO] [stdout]   --> src/model/enemies/mod.rs:24:62
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn take_damage(&mut self, damage: super::damage::Damage, effects: Vec<Effects>) -> Nresult {
[INFO] [stdout]    |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effects`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/model/mod.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/model/mod.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 TitlePhase::Start => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 137 |                 TitlePhase::Menu(selection) => {
[INFO] [stdout]     |                 --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 155 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `effects`
[INFO] [stdout]   --> src/model/player.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         effects: Vec<super::damage::Effects>,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/renderer/ui.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         _ => {
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/renderer/ui.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         TitlePhase::Start => {
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 92 |         TitlePhase::Menu(selection) => {
[INFO] [stdout]    |         --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 95 |         _ => {
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/model/mod.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/model/mod.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 TitlePhase::Start => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 137 |                 TitlePhase::Menu(selection) => {
[INFO] [stdout]     |                 --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 155 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/renderer/ui.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         _ => {
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/renderer/ui.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         TitlePhase::Start => {
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 92 |         TitlePhase::Menu(selection) => {
[INFO] [stdout]    |         --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 95 |         _ => {
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ENEMIES` is never used
[INFO] [stdout]   --> src/assets.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static ENEMIES: Lazy<Vec<Texture2D>> = Lazy::new(|| block_on(init_enemies()));
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENEMY_LOC` is never used
[INFO] [stdout]   --> src/assets.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ENEMY_LOC: &str = "enemies";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_enemies` is never used
[INFO] [stdout]   --> src/assets.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn init_enemies() -> Vec<Texture2D> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_texture2D` is never used
[INFO] [stdout]   --> src/assets.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub async fn load_texture2D(path: PathBuf) -> Result<Texture2D> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `keypress_unchecked`, `keypress_peek`, and `keypress_peek_unchecked` are never used
[INFO] [stdout]   --> src/input/keys.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl KbdMan {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn keypress_unchecked(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn keypress_peek(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn keypress_peek_unchecked(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseMan` is never constructed
[INFO] [stdout]  --> src/input/mouse.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MouseMan {}
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `can_continue` and `get_savefile_names` are never used
[INFO] [stdout]    --> src/model/mod.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl GameModel {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn can_continue() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub async fn get_savefile_names() -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `health` is never read
[INFO] [stdout]    --> src/model/mod.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct Status {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 306 |     pub mode: GameMode,
[INFO] [stdout] 307 |     pub health: u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CRIT_MULTIPLIER` is never used
[INFO] [stdout]  --> src/model/damage.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const CRIT_MULTIPLIER: f32 = 2.0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effects` is never used
[INFO] [stdout]   --> src/model/damage.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Effects {}
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `take_damage` is never used
[INFO] [stdout]   --> src/model/damage.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Damageable {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 13 |     /// Take damage from character `from`
[INFO] [stdout] 14 |     fn take_damage(&mut self, damage: Damage, effects: Vec<Effects>) -> Nresult;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Damage` is never constructed
[INFO] [stdout]   --> src/model/damage.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Damage<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/model/damage.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'a> Damage<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 35 |     /// evaluate damage based on parameters
[INFO] [stdout] 36 |     pub fn evaluate(&self) -> Result<f32> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cooldown` and `stunnable` are never read
[INFO] [stdout]   --> src/model/enemies/enemymap.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct EnemyKind {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 14 |     pub animation: Vec<(f32, Texture2D)>,
[INFO] [stdout] 15 |     pub cooldown: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stunnable: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Entity` is never used
[INFO] [stdout]  --> src/model/entity.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Entity {
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `attack`, `defense`, and `stun` are never read
[INFO] [stdout]   --> src/model/player.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  8 |     pub attack: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  9 |     pub defense: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub stun: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model/player.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Player {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `crit_chance`, `knockback`, `stun`, and `animation` are never read
[INFO] [stdout]   --> src/model/weapons/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Weapon {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 19 |     pub power: f32,
[INFO] [stdout] 20 |     pub crit_chance: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub knockback: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 24 |     pub stun: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 25 |     pub animation: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Projectile` is never constructed
[INFO] [stdout]   --> src/model/weapons/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum WeaponKind {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 79 |     Projectile { bullet: u32, speed: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bullet` is never constructed
[INFO] [stdout]  --> src/model/weapons/bullets.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Bullet {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quad` is never constructed
[INFO] [stdout]   --> src/model/weapons/bullets.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Quad([Vec2; 2]);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeaponStats` is never constructed
[INFO] [stdout]  --> src/model/weapons/weaponmap.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WeaponStats {}
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model/world.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl World {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_map_size` is never used
[INFO] [stdout]   --> src/renderer/world.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_map_size(map: u32) -> Result<Vec2> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_min_world_scale` is never used
[INFO] [stdout]    --> src/renderer/world.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn get_min_world_scale() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_camera_pos` is never used
[INFO] [stdout]    --> src/renderer/world.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn get_camera_pos(player_pos: Vec2, map_id: u32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_player_screen_pos` is never used
[INFO] [stdout]    --> src/renderer/world.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn get_player_screen_pos(player_pos: Vec2, map_id: u32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DELTA_TIME` is never used
[INFO] [stdout]   --> src/util.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub static DELTA_TIME: RwLock<f32> = RwLock::new(0.0);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_delta_time` is never used
[INFO] [stdout]   --> src/util.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn update_delta_time() -> Nresult {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_frame` is never used
[INFO] [stdout]    --> src/util.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn log_frame(s: String) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |         self.update_debug();
[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] 165 |         let _ = self.update_debug();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |         self.update_damage();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let _ = self.update_damage();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 | /                 self.player
[INFO] [stdout] 184 | |                     .take_damage_raw(get_enemy_info(el.id).unwrap().attack);
[INFO] [stdout]     | |___________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let _ = self.player
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |         self.log(&format!("health: {}", self.player.health));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let _ = self.log(&format!("health: {}", self.player.health));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 | /         self.log(&format!(
[INFO] [stdout] 203 | |             "cooldown: {}",
[INFO] [stdout] 204 | |             self.player.weapon.cooldown_counter
[INFO] [stdout] 205 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let _ = self.log(&format!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/renderer/world.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     draw_weapon(&player.weapon, world.player_pos, camera_pos, scale, world);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let _ = draw_weapon(&player.weapon, world.player_pos, camera_pos, scale, world);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ENEMIES` is never used
[INFO] [stdout]   --> src/assets.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static ENEMIES: Lazy<Vec<Texture2D>> = Lazy::new(|| block_on(init_enemies()));
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENEMY_LOC` is never used
[INFO] [stdout]   --> src/assets.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ENEMY_LOC: &str = "enemies";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_enemies` is never used
[INFO] [stdout]   --> src/assets.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | async fn init_enemies() -> Vec<Texture2D> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_texture2D` is never used
[INFO] [stdout]   --> src/assets.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub async fn load_texture2D(path: PathBuf) -> Result<Texture2D> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `keypress_unchecked`, `keypress_peek`, and `keypress_peek_unchecked` are never used
[INFO] [stdout]   --> src/input/keys.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl KbdMan {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn keypress_unchecked(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn keypress_peek(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn keypress_peek_unchecked(&mut self, keycode: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseMan` is never constructed
[INFO] [stdout]  --> src/input/mouse.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MouseMan {}
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `can_continue` and `get_savefile_names` are never used
[INFO] [stdout]    --> src/model/mod.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl GameModel {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn can_continue() -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub async fn get_savefile_names() -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `health` is never read
[INFO] [stdout]    --> src/model/mod.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct Status {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 306 |     pub mode: GameMode,
[INFO] [stdout] 307 |     pub health: u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CRIT_MULTIPLIER` is never used
[INFO] [stdout]  --> src/model/damage.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const CRIT_MULTIPLIER: f32 = 2.0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effects` is never used
[INFO] [stdout]   --> src/model/damage.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Effects {}
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `take_damage` is never used
[INFO] [stdout]   --> src/model/damage.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Damageable {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 13 |     /// Take damage from character `from`
[INFO] [stdout] 14 |     fn take_damage(&mut self, damage: Damage, effects: Vec<Effects>) -> Nresult;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Damage` is never constructed
[INFO] [stdout]   --> src/model/damage.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Damage<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/model/damage.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'a> Damage<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 35 |     /// evaluate damage based on parameters
[INFO] [stdout] 36 |     pub fn evaluate(&self) -> Result<f32> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cooldown` and `stunnable` are never read
[INFO] [stdout]   --> src/model/enemies/enemymap.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct EnemyKind {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 14 |     pub animation: Vec<(f32, Texture2D)>,
[INFO] [stdout] 15 |     pub cooldown: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub stunnable: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Entity` is never used
[INFO] [stdout]  --> src/model/entity.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Entity {
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `attack`, `defense`, and `stun` are never read
[INFO] [stdout]   --> src/model/player.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  8 |     pub attack: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  9 |     pub defense: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub stun: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model/player.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Player {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `crit_chance`, `knockback`, `stun`, and `animation` are never read
[INFO] [stdout]   --> src/model/weapons/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Weapon {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 19 |     pub power: f32,
[INFO] [stdout] 20 |     pub crit_chance: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub knockback: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 24 |     pub stun: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 25 |     pub animation: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Projectile` is never constructed
[INFO] [stdout]   --> src/model/weapons/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum WeaponKind {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 79 |     Projectile { bullet: u32, speed: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bullet` is never constructed
[INFO] [stdout]  --> src/model/weapons/bullets.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Bullet {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quad` is never constructed
[INFO] [stdout]   --> src/model/weapons/bullets.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Quad([Vec2; 2]);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeaponStats` is never constructed
[INFO] [stdout]  --> src/model/weapons/weaponmap.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WeaponStats {}
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/model/world.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl World {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_map_size` is never used
[INFO] [stdout]   --> src/renderer/world.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_map_size(map: u32) -> Result<Vec2> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_min_world_scale` is never used
[INFO] [stdout]    --> src/renderer/world.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn get_min_world_scale() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_camera_pos` is never used
[INFO] [stdout]    --> src/renderer/world.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn get_camera_pos(player_pos: Vec2, map_id: u32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_player_screen_pos` is never used
[INFO] [stdout]    --> src/renderer/world.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn get_player_screen_pos(player_pos: Vec2, map_id: u32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DELTA_TIME` is never used
[INFO] [stdout]   --> src/util.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub static DELTA_TIME: RwLock<f32> = RwLock::new(0.0);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_delta_time` is never used
[INFO] [stdout]   --> src/util.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn update_delta_time() -> Nresult {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_frame` is never used
[INFO] [stdout]    --> src/util.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn log_frame(s: String) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |         self.update_debug();
[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] 165 |         let _ = self.update_debug();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |         self.update_damage();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let _ = self.update_damage();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 | /                 self.player
[INFO] [stdout] 184 | |                     .take_damage_raw(get_enemy_info(el.id).unwrap().attack);
[INFO] [stdout]     | |___________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let _ = self.player
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |         self.log(&format!("health: {}", self.player.health));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let _ = self.log(&format!("health: {}", self.player.health));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model/mod.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 | /         self.log(&format!(
[INFO] [stdout] 203 | |             "cooldown: {}",
[INFO] [stdout] 204 | |             self.player.weapon.cooldown_counter
[INFO] [stdout] 205 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let _ = self.log(&format!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/renderer/world.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     draw_weapon(&player.weapon, world.player_pos, camera_pos, scale, world);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let _ = draw_weapon(&player.weapon, world.player_pos, camera_pos, scale, world);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.94s
[INFO] running `Command { std: "docker" "inspect" "b6b26c28cc60a519c4db492748615eb1cf7ffab6797165b7dbc16046b3d7beac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6b26c28cc60a519c4db492748615eb1cf7ffab6797165b7dbc16046b3d7beac", kill_on_drop: false }`
[INFO] [stdout] b6b26c28cc60a519c4db492748615eb1cf7ffab6797165b7dbc16046b3d7beac
