[INFO] fetching crate emerald 0.3.214...
[INFO] checking emerald-0.3.214 against 1.95.0 for pr-155915
[INFO] extracting crate emerald 0.3.214 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate emerald 0.3.214
[INFO] finished tweaking crates.io crate emerald 0.3.214
[INFO] tweaked toml for crates.io crate emerald 0.3.214 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate emerald 0.3.214 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate emerald 0.3.214 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crossfont v0.5.1
[INFO] [stderr]   Downloaded raw-window-handle v0.5.1
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.1
[INFO] [stderr]   Downloaded rusty-xinput v1.2.0
[INFO] [stderr]   Downloaded basedrop v0.1.2
[INFO] [stderr]   Downloaded sctk-adwaita v0.4.3
[INFO] [stderr]   Downloaded ndk-glue v0.6.2
[INFO] [stderr]   Downloaded gamepad v0.1.6
[INFO] [stderr]   Downloaded proc-macro2 v1.0.54
[INFO] [stderr]   Downloaded nohash v0.2.0
[INFO] [stderr]   Downloaded toml_datetime v0.6.1
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.14
[INFO] [stderr]   Downloaded mach v0.2.3
[INFO] [stderr]   Downloaded paste v1.0.12
[INFO] [stderr]   Downloaded io-kit-sys v0.1.0
[INFO] [stderr]   Downloaded gilrs-core v0.3.2
[INFO] [stderr]   Downloaded asefile v0.3.5
[INFO] [stderr]   Downloaded hound v3.5.0
[INFO] [stderr]   Downloaded kira v0.5.3
[INFO] [stderr]   Downloaded wide v0.7.8
[INFO] [stderr]   Downloaded hecs v0.9.1
[INFO] [stderr]   Downloaded gilrs v0.8.2
[INFO] [stderr]   Downloaded toml_edit v0.19.8
[INFO] [stderr]   Downloaded fontdue v0.7.2
[INFO] [stderr]   Downloaded spade v2.1.0
[INFO] [stderr]   Downloaded tiny-skia v0.7.0
[INFO] [stderr]   Downloaded libm v0.2.6
[INFO] [stderr]   Downloaded rapier2d v0.15.0
[INFO] [stderr]   Downloaded syn v2.0.10
[INFO] [stderr]   Downloaded parry2d v0.10.0
[INFO] [stderr]   Downloaded winnow v0.4.1
[INFO] [stderr]   Downloaded cpal v0.13.5
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.7
[INFO] [stderr]   Downloaded sapp-android v0.1.15
[INFO] [stderr]   Downloaded freetype-rs v0.26.0
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.16.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.15
[INFO] [stderr]   Downloaded calloop v0.10.5
[INFO] [stderr]   Downloaded spin v0.9.7
[INFO] [stderr]   Downloaded clang-sys v1.6.0
[INFO] [stderr]   Downloaded ringbuf v0.2.8
[INFO] [stderr]   Downloaded tiny-skia-path v0.7.0
[INFO] [stderr]   Downloaded dwrote v0.11.0
[INFO] [stderr]   Downloaded emd_earcutr v0.1.0
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9e43ae55dd2c879309bf253e071d8436094223241f5e823ff5ea8c742854e2a2
[INFO] running `Command { std: "docker" "start" "-a" "9e43ae55dd2c879309bf253e071d8436094223241f5e823ff5ea8c742854e2a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9e43ae55dd2c879309bf253e071d8436094223241f5e823ff5ea8c742854e2a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e43ae55dd2c879309bf253e071d8436094223241f5e823ff5ea8c742854e2a2", kill_on_drop: false }`
[INFO] [stdout] 9e43ae55dd2c879309bf253e071d8436094223241f5e823ff5ea8c742854e2a2
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a3e2609c0d289b3f9b030827a0e3af83e723e7bbf89629cf21dd6c788faaf5df
[INFO] running `Command { std: "docker" "start" "-a" "a3e2609c0d289b3f9b030827a0e3af83e723e7bbf89629cf21dd6c788faaf5df", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.140
[INFO] [stderr]    Compiling proc-macro2 v1.0.54
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling libm v0.2.6
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling cmake v0.1.49
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]    Compiling servo-fontconfig-sys v5.1.0
[INFO] [stderr]    Compiling slotmap v1.0.6
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling paste v1.0.12
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling ash v0.37.2+1.3.238
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]    Compiling expat-sys v2.1.6
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.158
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking flate2 v1.0.25
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]    Compiling syn v2.0.10
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling crossfont v0.5.1
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.0
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]    Compiling serde v1.0.158
[INFO] [stderr]     Checking foreign-types-shared v0.3.1
[INFO] [stderr]     Checking raw-window-handle v0.5.1
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling wgpu-core v0.14.2
[INFO] [stderr]     Checking png v0.17.7
[INFO] [stderr]     Checking gpu-alloc v0.5.3
[INFO] [stderr]     Checking matrixmultiply v0.3.2
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking nix v0.23.2
[INFO] [stderr]     Checking parking_lot_core v0.9.7
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking num-complex v0.4.3
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking freetype-rs v0.26.0
[INFO] [stderr]     Checking servo-fontconfig v0.5.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking parking_lot_core v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking wgpu-types v0.14.1
[INFO] [stderr]     Checking indexmap v1.9.3
[INFO] [stderr]     Checking gpu-descriptor v0.2.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling atomic v0.5.1
[INFO] [stderr]    Compiling cpal v0.13.5
[INFO] [stderr]     Checking robust v0.2.3
[INFO] [stderr]     Checking profiling v1.0.7
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking renderdoc-sys v0.7.1
[INFO] [stderr]     Checking optional v0.5.0
[INFO] [stderr]     Checking glow v0.11.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking spade v2.1.0
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.7
[INFO] [stderr]     Checking aho-corasick v0.7.20
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking cache-padded v1.2.0
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling serde_json v1.0.95
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]     Checking ringbuf v0.2.8
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking mio v0.8.6
[INFO] [stderr]     Checking nohash v0.2.0
[INFO] [stderr]     Checking basedrop v0.1.2
[INFO] [stderr]     Checking hound v3.5.0
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking spin v0.9.7
[INFO] [stderr]     Checking anymap v0.12.1
[INFO] [stderr]     Checking pollster v0.2.5
[INFO] [stderr]     Checking hecs v0.9.1
[INFO] [stderr]     Checking emd_earcutr v0.1.0
[INFO] [stderr]     Checking regex v1.7.3
[INFO] [stderr]     Checking gilrs-core v0.3.2
[INFO] [stderr]     Checking alsa v0.6.0
[INFO] [stderr]    Compiling bytemuck_derive v1.4.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]    Compiling foreign-types-macros v0.2.3
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking gilrs v0.8.2
[INFO] [stderr]     Checking fontdue v0.7.2
[INFO] [stderr]     Checking foreign-types v0.5.0
[INFO] [stderr]     Checking gamepad v0.1.6
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking naga v0.10.0
[INFO] [stderr]     Checking calloop v0.10.5
[INFO] [stderr]     Checking safe_arch v0.6.0
[INFO] [stderr]     Checking tiny-skia-path v0.7.0
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking kira v0.5.3
[INFO] [stderr]     Checking wide v0.7.8
[INFO] [stderr]     Checking tiny-skia v0.7.0
[INFO] [stderr]     Checking asefile v0.3.5
[INFO] [stderr]     Checking simba v0.7.3
[INFO] [stderr]     Checking wgpu-hal v0.14.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking nalgebra v0.31.4
[INFO] [stderr]     Checking wgpu v0.14.2
[INFO] [stderr]     Checking parry2d v0.10.0
[INFO] [stderr]     Checking rapier2d v0.15.0
[INFO] [stderr]     Checking sctk-adwaita v0.4.3
[INFO] [stderr]     Checking winit v0.27.5
[INFO] [stderr]     Checking emerald v0.3.214 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> src/input.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `asefile`, `aseprite`, `audio`, `default`, `gamepad`, `gamepads`, `hotreload`, `kira`, and `physics-deterministic`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sound` and `texture::Texture`
[INFO] [stdout]   --> src/assets/asset_engine.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     texture::Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     AssetLoadConfig, AssetLoadContext, EmeraldError, OnAssetLoadCallback, Sound,
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Emerald`
[INFO] [stdout]  --> src/core/components/autotilemap.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     AssetLoader, Emerald, EmeraldError, World,
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Translation2`
[INFO] [stdout]  --> src/core/components/transform.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rapier2d::na::{Translation2, Vector2};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::*`
[INFO] [stdout]  --> src/rendering/components/label.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{font::FontKey, rendering::*};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::TypeId`
[INFO] [stdout]  --> src/rendering/rendering_engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::TypeId,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::RigidBodyHandle`
[INFO] [stdout]   --> src/rendering/rendering_engine.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rapier2d::{na::Vector2, prelude::RigidBodyHandle};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scale` and `get_texture_key`
[INFO] [stdout]   --> src/rendering/rendering_engine.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     texture::{get_texture_key, Texture, TextureKey},
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     tilemap::Tilemap,
[INFO] [stdout] 26 |     AssetEngine, Color, EmeraldError, Rectangle, Scale, Transform, Translation, UIButton, World,
[INFO] [stdout]    |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BindGroupLayout`
[INFO] [stdout]  --> src/rendering/texture.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hecs::Entity`
[INFO] [stdout]  --> src/world/physics/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use hecs::Entity;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::ColliderHandle`
[INFO] [stdout]  --> src/world/physics/types.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::{parry::query::Ray, prelude::ColliderHandle};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `components::*`
[INFO] [stdout]  --> src/world/physics.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use components::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parry::shape::Cuboid`
[INFO] [stdout]  --> src/world/ent/ent_rigid_body_loader.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parry::shape::Cuboid,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Vec2f32Schema`
[INFO] [stdout]  --> src/world/ent/ent_sound_player_loader.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::Vec2f32Schema;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AssetLoadConfig`
[INFO] [stdout]  --> src/world.rs:9:58
[INFO] [stdout]   |
[INFO] [stdout] 9 |     rendering::components::Camera, resources::Resources, AssetLoadConfig, AssetLoader,
[INFO] [stdout]   |                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntLoadConfig`
[INFO] [stdout]   --> src/world.rs:21:67
[INFO] [stdout]    |
[INFO] [stdout] 21 |         ent_transform_loader::load_transform_from_toml, load_ent, EntLoadConfig,
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/lib.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use crate::core::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `components` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 25 | pub use audio::*;
[INFO] [stdout]    |         -------- but the name `components` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> src/input.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `asefile`, `aseprite`, `audio`, `default`, `gamepad`, `gamepads`, `hotreload`, `kira`, and `physics-deterministic`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sound` and `texture::Texture`
[INFO] [stdout]   --> src/assets/asset_engine.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     texture::Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     AssetLoadConfig, AssetLoadContext, EmeraldError, OnAssetLoadCallback, Sound,
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Emerald`
[INFO] [stdout]  --> src/core/components/autotilemap.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     AssetLoader, Emerald, EmeraldError, World,
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Translation2`
[INFO] [stdout]  --> src/core/components/transform.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rapier2d::na::{Translation2, Vector2};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::*`
[INFO] [stdout]  --> src/rendering/components/label.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{font::FontKey, rendering::*};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::TypeId`
[INFO] [stdout]  --> src/rendering/rendering_engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::TypeId,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::RigidBodyHandle`
[INFO] [stdout]   --> src/rendering/rendering_engine.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rapier2d::{na::Vector2, prelude::RigidBodyHandle};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scale` and `get_texture_key`
[INFO] [stdout]   --> src/rendering/rendering_engine.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     texture::{get_texture_key, Texture, TextureKey},
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     tilemap::Tilemap,
[INFO] [stdout] 26 |     AssetEngine, Color, EmeraldError, Rectangle, Scale, Transform, Translation, UIButton, World,
[INFO] [stdout]    |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BindGroupLayout`
[INFO] [stdout]  --> src/rendering/texture.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hecs::Entity`
[INFO] [stdout]  --> src/world/physics/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use hecs::Entity;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::ColliderHandle`
[INFO] [stdout]  --> src/world/physics/types.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rapier2d::{parry::query::Ray, prelude::ColliderHandle};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `components::*`
[INFO] [stdout]  --> src/world/physics.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use components::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parry::shape::Cuboid`
[INFO] [stdout]  --> src/world/ent/ent_rigid_body_loader.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     parry::shape::Cuboid,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Vec2f32Schema`
[INFO] [stdout]  --> src/world/ent/ent_sound_player_loader.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::Vec2f32Schema;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AssetLoadConfig`
[INFO] [stdout]  --> src/world.rs:9:58
[INFO] [stdout]   |
[INFO] [stdout] 9 |     rendering::components::Camera, resources::Resources, AssetLoadConfig, AssetLoader,
[INFO] [stdout]   |                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EntLoadConfig`
[INFO] [stdout]   --> src/world.rs:21:67
[INFO] [stdout]    |
[INFO] [stdout] 21 |         ent_transform_loader::load_transform_from_toml, load_ent, EntLoadConfig,
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/lib.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use crate::core::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `components` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 25 | pub use audio::*;
[INFO] [stdout]    |         -------- but the name `components` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_buffer`
[INFO] [stdout]    --> src/rendering/rendering_engine.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let camera_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_buffer`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/core/game_engine.rs:95:29
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn input(&mut self, event: &WindowEvent) -> bool {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_buffer`
[INFO] [stdout]    --> src/rendering/rendering_engine.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let camera_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_buffer`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/core/game_engine.rs:95:29
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn input(&mut self, event: &WindowEvent) -> bool {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/input/input_engine.rs:200:21
[INFO] [stdout]     |
[INFO] [stdout] 200 |         if let Some(mut key) = self.keys.get_mut(&keycode) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/input/input_engine.rs:200:21
[INFO] [stdout]     |
[INFO] [stdout] 200 |         if let Some(mut key) = self.keys.get_mut(&keycode) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_writer` is never read
[INFO] [stdout]   --> src/logging/engine.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut line_writer = None;
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_writer` is never read
[INFO] [stdout]   --> src/logging/engine.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut line_writer = None;
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `optional_metrics` is never read
[INFO] [stdout]    --> src/rendering/font.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut optional_metrics = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `optional_bitmap` is never read
[INFO] [stdout]    --> src/rendering/font.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut optional_bitmap = None;
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `optional_metrics` is never read
[INFO] [stdout]    --> src/rendering/font.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut optional_metrics = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `optional_bitmap` is never read
[INFO] [stdout]    --> src/rendering/font.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut optional_bitmap = None;
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `texture_size` is assigned to, but never used
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1271:9
[INFO] [stdout]      |
[INFO] [stdout] 1271 |     let texture_size;
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_texture_size` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `texture_size` is never read
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1273:9
[INFO] [stdout]      |
[INFO] [stdout] 1273 |         texture_size = (texture.size.width as f32, texture.size.height as f32);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1729:46
[INFO] [stdout]      |
[INFO] [stdout] 1729 |                 .map(|(entity, (to_drawable, transform))| DrawCommand {
[INFO] [stdout]      |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `texture_size` is assigned to, but never used
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1271:9
[INFO] [stdout]      |
[INFO] [stdout] 1271 |     let texture_size;
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_texture_size` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `texture_size` is never read
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1273:9
[INFO] [stdout]      |
[INFO] [stdout] 1273 |         texture_size = (texture.size.width as f32, texture.size.height as f32);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1729:46
[INFO] [stdout]      |
[INFO] [stdout] 1729 |                 .map(|(entity, (to_drawable, transform))| DrawCommand {
[INFO] [stdout]      |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> src/world/ent/ent_rigid_body_loader.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     loader: &mut AssetLoader<'a>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> src/world/ent/ent_rigid_body_loader.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     loader: &mut AssetLoader<'a>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/world.rs:161:22
[INFO] [stdout]     |
[INFO] [stdout] 161 |             for (id, mut camera_to_disable) in self.query::<&mut Camera>().iter() {
[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/world.rs:161:22
[INFO] [stdout]     |
[INFO] [stdout] 161 |             for (id, mut camera_to_disable) in self.query::<&mut Camera>().iter() {
[INFO] [stdout]     |                      ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_asset_mut_by_label`, `get_asset_key_by_id`, `total_count`, and `count` are never used
[INFO] [stdout]    --> src/assets/asset_engine.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl AssetEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn get_asset_mut_by_label<T: Any>(&mut self, label: &str) -> Option<&mut T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn get_asset_key_by_id<T: Any>(&self, id: &AssetId) -> Option<AssetKey> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn total_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn count<T: Any>(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mut_by_label` and `get_asset_key_by_id` are never used
[INFO] [stdout]    --> src/assets/asset_storage.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl AssetStorage {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_mut_by_label(&mut self, label: &str) -> Option<&mut Asset> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_asset_key_by_id(&self, id: &AssetId) -> Option<AssetKey> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/audio/sound.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SoundKey {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     pub(crate) asset_key: AssetKey,
[INFO] [stdout] 22 |     format: SoundFormat,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SoundKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tileset_resource` is never used
[INFO] [stdout]   --> src/core/components/tilemap.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn load_tileset_resource<T: Into<String>>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clean_up` is never used
[INFO] [stdout]    --> src/core/game_engine.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl GameEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn clean_up(mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_mouse_translation`, `set_mouse_down`, `set_mouse_up`, `set_mouse_pressed`, and `touch_event` are never used
[INFO] [stdout]    --> src/input/input_engine.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl InputEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn set_mouse_translation(&mut self, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn set_mouse_down(&mut self, button: MouseButton, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_mouse_up(&mut self, button: MouseButton, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn set_mouse_pressed(&mut self, button: MouseButton, is_pressed: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn touch_event(&mut self, phase: TouchPhase, id: u64, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]    --> src/rendering/components/aseprite.rs:227:20
[INFO] [stdout]     |
[INFO] [stdout] 226 |     pub struct AseSize {
[INFO] [stdout]     |                ------- field in this struct
[INFO] [stdout] 227 |         pub(crate) w: u32,
[INFO] [stdout]     |                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AseSize` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `path` are never read
[INFO] [stdout]   --> src/rendering/font.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct FontKey {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 22 |     size: u32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 23 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FontKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ColorTri` is never constructed
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1658:5
[INFO] [stdout]      |
[INFO] [stdout] 1651 | pub(crate) enum DrawableType {
[INFO] [stdout]      |                 ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 1658 |     ColorTri,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera` and `camera_transform` are never read
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1672:5
[INFO] [stdout]      |
[INFO] [stdout] 1668 | struct DrawCommandAdder {
[INFO] [stdout]      |        ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1672 |     camera: Camera,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 1673 |     camera_transform: Transform,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rendering/shaders/textured_quad.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Vertex {
[INFO] [stdout]   |                   ^^^^^^ field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]  --> src/rendering/shaders/textured_quad.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[repr(C)]
[INFO] [stdout]   | ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Camera2D` is never constructed
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) struct Camera2D {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `build_view_projection_matrix` are never used
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Camera2D {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 69 |     pub fn new(view_width: u32, view_height: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn build_view_projection_matrix(&self) -> Matrix4<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:91:19
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub(crate) struct CameraUniform {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:88:1
[INFO] [stdout]    |
[INFO] [stdout] 88 | #[repr(C)]
[INFO] [stdout]    | ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `contact_force_event_recv` is never read
[INFO] [stdout]   --> src/world/physics/physics_engine.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PhysicsEngine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub(crate) contact_force_event_recv: crossbeam::channel::Receiver<ContactForceEvent>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/assets/asset_loader.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let sound_bytes = self.asset_bytes(path.clone())?;
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/assets/asset_loader.rs:271:46
[INFO] [stdout]     |
[INFO] [stdout] 271 |         if let Ok(_sprite) = self.sprite(name.clone()) {
[INFO] [stdout]     |                                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/audio/mixer.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |         if KIRA_AUDIO_MANAGER.is_none() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/audio/mixer.rs:75:38
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Some(audio_manager) = &mut KIRA_AUDIO_MANAGER {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Some(audio_manager) = &raw mut KIRA_AUDIO_MANAGER {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_asset_mut_by_label`, `get_asset_key_by_id`, `total_count`, and `count` are never used
[INFO] [stdout]    --> src/assets/asset_engine.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl AssetEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn get_asset_mut_by_label<T: Any>(&mut self, label: &str) -> Option<&mut T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn get_asset_key_by_id<T: Any>(&self, id: &AssetId) -> Option<AssetKey> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn total_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn count<T: Any>(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mut_by_label` and `get_asset_key_by_id` are never used
[INFO] [stdout]    --> src/assets/asset_storage.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl AssetStorage {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_mut_by_label(&mut self, label: &str) -> Option<&mut Asset> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_asset_key_by_id(&self, id: &AssetId) -> Option<AssetKey> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> src/assets/asset_storage.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |     struct TestAsset {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 233 |         pub value: usize,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/audio/sound.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SoundKey {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     pub(crate) asset_key: AssetKey,
[INFO] [stdout] 22 |     format: SoundFormat,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SoundKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tileset_resource` is never used
[INFO] [stdout]   --> src/core/components/tilemap.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn load_tileset_resource<T: Into<String>>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clean_up` is never used
[INFO] [stdout]    --> src/core/game_engine.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl GameEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn clean_up(mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_mouse_translation`, `set_mouse_down`, `set_mouse_up`, `set_mouse_pressed`, and `touch_event` are never used
[INFO] [stdout]    --> src/input/input_engine.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl InputEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn set_mouse_translation(&mut self, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn set_mouse_down(&mut self, button: MouseButton, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_mouse_up(&mut self, button: MouseButton, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn set_mouse_pressed(&mut self, button: MouseButton, is_pressed: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn touch_event(&mut self, phase: TouchPhase, id: u64, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]    --> src/rendering/components/aseprite.rs:227:20
[INFO] [stdout]     |
[INFO] [stdout] 226 |     pub struct AseSize {
[INFO] [stdout]     |                ------- field in this struct
[INFO] [stdout] 227 |         pub(crate) w: u32,
[INFO] [stdout]     |                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AseSize` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `path` are never read
[INFO] [stdout]   --> src/rendering/font.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct FontKey {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 22 |     size: u32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 23 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FontKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ColorTri` is never constructed
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1658:5
[INFO] [stdout]      |
[INFO] [stdout] 1651 | pub(crate) enum DrawableType {
[INFO] [stdout]      |                 ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 1658 |     ColorTri,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera` and `camera_transform` are never read
[INFO] [stdout]     --> src/rendering/rendering_engine.rs:1672:5
[INFO] [stdout]      |
[INFO] [stdout] 1668 | struct DrawCommandAdder {
[INFO] [stdout]      |        ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1672 |     camera: Camera,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 1673 |     camera_transform: Transform,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/rendering/shaders/textured_quad.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Vertex {
[INFO] [stdout]   |                   ^^^^^^ field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]  --> src/rendering/shaders/textured_quad.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[repr(C)]
[INFO] [stdout]   | ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Camera2D` is never constructed
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) struct Camera2D {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `build_view_projection_matrix` are never used
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Camera2D {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 69 |     pub fn new(view_width: u32, view_height: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn build_view_projection_matrix(&self) -> Matrix4<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:91:19
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub(crate) struct CameraUniform {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/rendering/shaders/textured_quad.rs:88:1
[INFO] [stdout]    |
[INFO] [stdout] 88 | #[repr(C)]
[INFO] [stdout]    | ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `contact_force_event_recv` is never read
[INFO] [stdout]   --> src/world/physics/physics_engine.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PhysicsEngine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub(crate) contact_force_event_recv: crossbeam::channel::Receiver<ContactForceEvent>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/assets/asset_loader.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let sound_bytes = self.asset_bytes(path.clone())?;
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/assets/asset_loader.rs:271:46
[INFO] [stdout]     |
[INFO] [stdout] 271 |         if let Ok(_sprite) = self.sprite(name.clone()) {
[INFO] [stdout]     |                                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/audio/mixer.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |         if KIRA_AUDIO_MANAGER.is_none() {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/audio/mixer.rs:75:38
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Some(audio_manager) = &mut KIRA_AUDIO_MANAGER {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 75 |         if let Some(audio_manager) = &raw mut KIRA_AUDIO_MANAGER {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sprite`
[INFO] [stdout]  --> examples/camera.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 |     rendering::components::{aseprite_update_system, Camera, Sprite},
[INFO] [stdout]   |                                                             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AutoTile`
[INFO] [stdout]  --> examples/autotilemap.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     autotilemap::{AutoTile, AutoTileRuleset, AutoTileRulesetValue, AutoTilemap},
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `emerald::RigidBodyBuilder::new_kinematic_position_based`: use `RigidBodyBuilder::kinematic_position_based()` instead
[INFO] [stdout]   --> examples/physics_groups.rs:76:35
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 RigidBodyBuilder::new_kinematic_position_based()
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `font::FontKey`
[INFO] [stdout]  --> examples/bunnymark.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     font::FontKey,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `emerald::RigidBodyBuilder::new_static`: use `RigidBodyBuilder::fixed()` instead
[INFO] [stdout]   --> examples/raycast.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 |                 RigidBodyBuilder::new_static(),
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyCode` and `World`
[INFO] [stdout]  --> examples/shapes.rs:2:67
[INFO] [stdout]   |
[INFO] [stdout] 2 |     rendering::components::ColorTri, Emerald, Game, GameSettings, KeyCode, Transform, Vector2,
[INFO] [stdout]   |                                                                   ^^^^^^^
[INFO] [stdout] 3 |     World, BLACK, WHITE,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ent::EntLoadConfig`
[INFO] [stdout]  --> examples/ent.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use emerald::{ent::EntLoadConfig, rendering::components::aseprite_update_system, *};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/physics_joints.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn initialize(&mut self, mut emd: Emerald) {
[INFO] [stdout]    |                              ----^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emd`
[INFO] [stdout]   --> examples/physics_joints.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn initialize(&mut self, mut emd: Emerald) {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_emd`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> examples/labels.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ElapsedTime(f32);
[INFO] [stdout]    |            ----------- ^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emd`
[INFO] [stdout]   --> examples/shapes.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn update(&mut self, emd: Emerald) {}
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_emd`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/bunnymark.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for (_, (_, transform, mut vel)) in self
[INFO] [stdout]    |                                ----^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> examples/ent.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     loader: &mut AssetLoader,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader`
[INFO] [stdout]   --> examples/ent.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     loader: &mut AssetLoader,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `max_hp` are never read
[INFO] [stdout]   --> examples/ent.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PlayerData {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 14 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 15 |     pub max_hp: i64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.17s
[INFO] running `Command { std: "docker" "inspect" "a3e2609c0d289b3f9b030827a0e3af83e723e7bbf89629cf21dd6c788faaf5df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a3e2609c0d289b3f9b030827a0e3af83e723e7bbf89629cf21dd6c788faaf5df", kill_on_drop: false }`
[INFO] [stdout] a3e2609c0d289b3f9b030827a0e3af83e723e7bbf89629cf21dd6c788faaf5df
