[INFO] cloning repository https://github.com/Puppy-Corp/pge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Puppy-Corp/pge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPuppy-Corp%2Fpge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPuppy-Corp%2Fpge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f3ecaade8cd4fb170ede14621493e37195e2a0e9
[INFO] checking Puppy-Corp/pge against master#61cc47e367d7be91e13bcd01e4e96e0e233d4f6d for pr-133502-17
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPuppy-Corp%2Fpge" "/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/Puppy-Corp/pge
[INFO] finished tweaking git repo https://github.com/Puppy-Corp/pge
[INFO] tweaked toml for git repo https://github.com/Puppy-Corp/pge written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Puppy-Corp/pge on toolchain 61cc47e367d7be91e13bcd01e4e96e0e233d4f6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Puppy-Corp/pge 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" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded urdf-rs v0.8.0
[INFO] [stderr]   Downloaded stl_io v0.7.0
[INFO] [stderr]   Downloaded lyon v1.0.1
[INFO] [stderr]   Downloaded yaserde_derive v0.8.0
[INFO] [stderr]   Downloaded ravif v0.11.9
[INFO] [stderr]   Downloaded float_next_after v1.0.0
[INFO] [stderr]   Downloaded yaserde v0.8.0
[INFO] [stderr]   Downloaded built v0.7.4
[INFO] [stderr]   Downloaded bitstream-io v2.5.0
[INFO] [stderr]   Downloaded clap v4.5.13
[INFO] [stderr]   Downloaded image-webp v0.1.3
[INFO] [stderr]   Downloaded ttf-parser v0.24.1
[INFO] [stderr]   Downloaded lyon_path v1.0.5
[INFO] [stderr]   Downloaded rgb v0.8.48
[INFO] [stderr]   Downloaded flate2 v1.0.31
[INFO] [stderr]   Downloaded clap_builder v4.5.13
[INFO] [stderr]   Downloaded lyon_tessellation v1.0.15
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1fc19c96c84bfab29430eeb989e7a5d55f2f27413ea5b87cb2ea7b9e10e75159
[INFO] running `Command { std: "docker" "start" "-a" "1fc19c96c84bfab29430eeb989e7a5d55f2f27413ea5b87cb2ea7b9e10e75159", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1fc19c96c84bfab29430eeb989e7a5d55f2f27413ea5b87cb2ea7b9e10e75159", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fc19c96c84bfab29430eeb989e7a5d55f2f27413ea5b87cb2ea7b9e10e75159", kill_on_drop: false }`
[INFO] [stdout] 1fc19c96c84bfab29430eeb989e7a5d55f2f27413ea5b87cb2ea7b9e10e75159
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a8fa9b6d8fe5a77063c33538600fb3f2bbcffea304fb4b4856992425c9147a37
[INFO] running `Command { std: "docker" "start" "-a" "a8fa9b6d8fe5a77063c33538600fb3f2bbcffea304fb4b4856992425c9147a37", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking libloading v0.8.5
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling wayland-sys v0.31.4
[INFO] [stderr]    Compiling cc v1.1.8
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling wayland-client v0.31.5
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling serde v1.0.205
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]     Checking miniz_oxide v0.7.4
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]    Compiling built v0.7.4
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling serde_json v1.0.122
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling wgpu-hal v0.21.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking flate2 v1.0.31
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking ttf-parser v0.24.1
[INFO] [stderr]     Checking bitstream-io v2.5.0
[INFO] [stderr]     Checking arrayref v0.3.8
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking xcursor v0.3.6
[INFO] [stderr]     Checking regex-automata v0.4.8
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]    Compiling wgpu-core v0.21.1
[INFO] [stderr]     Checking wgpu-types v0.20.0
[INFO] [stderr]    Compiling quick-xml v0.34.0
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking zune-jpeg v0.4.13
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking euclid v0.22.10
[INFO] [stderr]     Checking v_frame v0.3.8
[INFO] [stderr]    Compiling wayland-backend v0.3.6
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking memmap2 v0.9.4
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling document-features v0.2.10
[INFO] [stderr]     Checking image-webp v0.1.3
[INFO] [stderr]    Compiling wayland-scanner v0.31.4
[INFO] [stderr]    Compiling winit v0.30.4
[INFO] [stderr]    Compiling wgpu v0.20.1
[INFO] [stderr]     Checking xml-rs v0.8.21
[INFO] [stderr]     Checking lyon_geom v1.0.5
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking float_next_after v1.0.0
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking lyon_path v1.0.5
[INFO] [stderr]     Checking yaserde v0.8.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking dpi v0.1.1
[INFO] [stderr]     Checking stl_io v0.7.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking clap_builder v4.5.13
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking lyon_tessellation v1.0.15
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking owned_ttf_parser v0.24.0
[INFO] [stderr]     Checking ab_glyph v0.2.28
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking lyon_algorithms v1.0.4
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking is-terminal v0.4.13
[INFO] [stderr]     Checking oorandom v11.1.4
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]     Checking bytes v1.7.1
[INFO] [stderr]     Checking lyon v1.0.1
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling bytemuck_derive v1.7.0
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]    Compiling serde_derive v1.0.205
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling clap_derive v4.5.13
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling yaserde_derive v0.8.0
[INFO] [stderr]     Checking tokio v1.39.2
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking bytemuck v1.16.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.63
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking rgb v0.8.48
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking polling v3.7.2
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking clap v4.5.13
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking urdf-rs v0.8.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking indexmap v2.3.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking naga v0.20.0
[INFO] [stderr]     Checking wayland-protocols v0.32.3
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.5
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking ravif v0.11.9
[INFO] [stderr]     Checking image v0.25.2
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.3
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.3
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking pge v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `glam::Mat4`
[INFO] [stdout]  --> src/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::Mat4;
[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: `ttf_parser::Transform`
[INFO] [stdout]  --> src/engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ttf_parser::Transform;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hardware`
[INFO] [stdout]  --> src/engine.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hardware;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Mat3`
[INFO] [stdout]  --> src/types.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::Mat3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arena::Arena`
[INFO] [stdout]  --> src/types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::arena::Arena;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gltf::load_gltf`
[INFO] [stdout]  --> src/types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gltf::load_gltf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GUIElement`
[INFO] [stdout]   --> src/types.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::GUIElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::qoi`
[INFO] [stdout]  --> src/internal_types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::codecs::qoi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]  --> src/physics/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use glam::Vec3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug::ChangePrinter`
[INFO] [stdout]  --> src/spatial_grid.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::debug::ChangePrinter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::SetLoggerError`
[INFO] [stdout]  --> src/log.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::SetLoggerError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/hardware.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ArenaId`
[INFO] [stdout]  --> src/hardware.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ArenaId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Mat4`
[INFO] [stdout]  --> src/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::Mat4;
[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: `ttf_parser::Transform`
[INFO] [stdout]  --> src/engine.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ttf_parser::Transform;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hardware`
[INFO] [stdout]  --> src/engine.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hardware;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error`
[INFO] [stdout]  --> src/text.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Mat3`
[INFO] [stdout]  --> src/types.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::Mat3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ttf_parser::GlyphId`
[INFO] [stdout]   --> src/text.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ttf_parser::GlyphId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arena::Arena`
[INFO] [stdout]  --> src/types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::arena::Arena;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gltf::load_gltf`
[INFO] [stdout]  --> src/types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gltf::load_gltf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::GUIElement`
[INFO] [stdout]   --> src/types.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::GUIElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::qoi`
[INFO] [stdout]  --> src/internal_types.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::codecs::qoi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/tests.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::time::Duration;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]  --> src/physics/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use glam::Vec3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug::ChangePrinter`
[INFO] [stdout]  --> src/spatial_grid.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::debug::ChangePrinter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::init_logging`
[INFO] [stdout]    --> src/gltf.rs:429:6
[INFO] [stdout]     |
[INFO] [stdout] 429 |     use crate::init_logging;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::SetLoggerError`
[INFO] [stdout]  --> src/log.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::SetLoggerError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/hardware.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ArenaId`
[INFO] [stdout]  --> src/hardware.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ArenaId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]   --> src/state.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     use glam::Vec3;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::CollisionShape`
[INFO] [stdout]    --> src/utility.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     use crate::CollisionShape;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error`
[INFO] [stdout]  --> src/text.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ttf_parser::GlyphId`
[INFO] [stdout]   --> src/text.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ttf_parser::GlyphId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lyon::path::traits::PathBuilder`
[INFO] [stdout]  --> src/text.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use lyon::path::traits::PathBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indices`
[INFO] [stdout]    --> src/engine.rs:769:25
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     let indices = call.indices.clone();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indices`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/types.rs:428:25
[INFO] [stdout]     |
[INFO] [stdout] 428 |     pub fn collides(&self, other: &CollisionShape) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types.rs:510:24
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:510:32
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/types.rs:510:40
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lyon::path::traits::PathBuilder`
[INFO] [stdout]  --> src/text.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use lyon::path::traits::PathBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:889:26
[INFO] [stdout]     |
[INFO] [stdout] 889 |     fn on_create(&mut self, state: &mut State) {}
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> src/types.rs:890:34
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/types.rs:890:62
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/types.rs:890:80
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:890:99
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> src/types.rs:891:31
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/types.rs:891:59
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:891:78
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:893:27
[INFO] [stdout]     |
[INFO] [stdout] 893 |     fn on_process(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]    --> src/types.rs:893:46
[INFO] [stdout]     |
[INFO] [stdout] 893 |     fn on_process(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:895:33
[INFO] [stdout]     |
[INFO] [stdout] 895 |     fn on_phycis_update(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]    --> src/types.rs:895:52
[INFO] [stdout]     |
[INFO] [stdout] 895 |     fn on_phycis_update(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indices`
[INFO] [stdout]    --> src/engine.rs:769:25
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     let indices = call.indices.clone();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indices`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/types.rs:428:25
[INFO] [stdout]     |
[INFO] [stdout] 428 |     pub fn collides(&self, other: &CollisionShape) -> bool {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types.rs:510:24
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center_b`
[INFO] [stdout]    --> src/physics/mod.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let center_b = [(b.min[0] + b.max[0]) / 2.0, (b.min[1] + b.max[1]) / 2.0, (b.min[2] + b.max[2]) / 2.0];
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_center_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:510:32
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/types.rs:510:40
[INFO] [stdout]     |
[INFO] [stdout] 510 |     pub fn mov(&mut self, x: f32, y: f32, z: f32) {
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/physics/mod.rs:390:34
[INFO] [stdout]     |
[INFO] [stdout] 390 |     fn detect_collisions(&mut self, state: &mut State, grid: &SpatialGrid) {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:889:26
[INFO] [stdout]     |
[INFO] [stdout] 889 |     fn on_create(&mut self, state: &mut State) {}
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> src/types.rs:890:34
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/types.rs:890:62
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/types.rs:890:80
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:890:99
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {}
[INFO] [stdout]     |                                                                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> src/types.rs:891:31
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/types.rs:891:59
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:891:78
[INFO] [stdout]     |
[INFO] [stdout] 891 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {}
[INFO] [stdout]     |                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:893:27
[INFO] [stdout]     |
[INFO] [stdout] 893 |     fn on_process(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]    --> src/types.rs:893:46
[INFO] [stdout]     |
[INFO] [stdout] 893 |     fn on_process(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/types.rs:895:33
[INFO] [stdout]     |
[INFO] [stdout] 895 |     fn on_phycis_update(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]    --> src/types.rs:895:52
[INFO] [stdout]     |
[INFO] [stdout] 895 |     fn on_phycis_update(&mut self, state: &mut State, delta: f32) {}
[INFO] [stdout]     |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/spatial_grid.rs:132:7
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut current = start;
[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: `floor_id`
[INFO] [stdout]   --> src/tests.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 let floor_id = state.nodes.insert(floor_node);
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_floor_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `floor_id`
[INFO] [stdout]    --> src/tests.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 let floor_id = state.nodes.insert(floor_node);
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_floor_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center_b`
[INFO] [stdout]    --> src/physics/mod.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let center_b = [(b.min[0] + b.max[0]) / 2.0, (b.min[1] + b.max[1]) / 2.0, (b.min[2] + b.max[2]) / 2.0];
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_center_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/physics/mod.rs:390:34
[INFO] [stdout]     |
[INFO] [stdout] 390 |     fn detect_collisions(&mut self, state: &mut State, grid: &SpatialGrid) {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/hardware.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn create_buffer(&mut self, name: &str, size: u64) -> BufferHandle { unimplemented!() }
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]  --> src/hardware.rs:8:45
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn create_buffer(&mut self, name: &str, size: u64) -> BufferHandle { unimplemented!() }
[INFO] [stdout]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]  --> src/hardware.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn destroy_buffer(&mut self, handle: BufferHandle) { unimplemented!() }
[INFO] [stdout]   |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/hardware.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/hardware.rs:10:46
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/hardware.rs:10:59
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/hardware.rs:10:71
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/hardware.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn create_pipeline(&mut self, name: &str, window: WindowHandle) -> PipelineHandle { unimplemented!() }
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn create_pipeline(&mut self, name: &str, window: WindowHandle) -> PipelineHandle { unimplemented!() }
[INFO] [stdout]    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]   --> src/hardware.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render(&mut self, encoder: RenderEncoder, window: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render(&mut self, encoder: RenderEncoder, window: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn create_window(&mut self, window: &Window) -> WindowHandle { unimplemented!() }
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> src/hardware.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn destroy_window(&mut self, handle: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/hardware.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn write_buffer(&mut self, buffer: BufferHandle, data: &[u8]) { unimplemented!() }
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/hardware.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn write_buffer(&mut self, buffer: BufferHandle, data: &[u8]) { unimplemented!() }
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn save_screenshot(&mut self, window: WindowHandle, path: &str) { unimplemented!() }
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/hardware.rs:16:54
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn save_screenshot(&mut self, window: WindowHandle, path: &str) { unimplemented!() }
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/spatial_grid.rs:132:7
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut current = start;
[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: `window_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 window_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `window_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:934:5
[INFO] [stdout]     |
[INFO] [stdout] 934 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:970:5
[INFO] [stdout]     |
[INFO] [stdout] 970 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:996:5
[INFO] [stdout]     |
[INFO] [stdout] 996 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_synthetic`
[INFO] [stdout]    --> src/wgpu/hardware.rs:998:5
[INFO] [stdout]     |
[INFO] [stdout] 998 |                 is_synthetic,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: try ignoring the field: `is_synthetic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1002:6
[INFO] [stdout]      |
[INFO] [stdout] 1002 |                     location,
[INFO] [stdout]      |                     ^^^^^^^^ help: try ignoring the field: `location: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |                 device_id,
[INFO] [stdout]      |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `phase`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1054:5
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 phase,
[INFO] [stdout]      |                 ^^^^^ help: try ignoring the field: `phase: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/hardware.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn create_buffer(&mut self, name: &str, size: u64) -> BufferHandle { unimplemented!() }
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]  --> src/hardware.rs:8:45
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn create_buffer(&mut self, name: &str, size: u64) -> BufferHandle { unimplemented!() }
[INFO] [stdout]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]  --> src/hardware.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn destroy_buffer(&mut self, handle: BufferHandle) { unimplemented!() }
[INFO] [stdout]   |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/hardware.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/hardware.rs:10:46
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/hardware.rs:10:59
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/hardware.rs:10:71
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn create_texture(&mut self, name: &str, data: &[u8], width: u32, height: u32) -> TextureHandle { unimplemented!() }
[INFO] [stdout]    |                                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/hardware.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn create_pipeline(&mut self, name: &str, window: WindowHandle) -> PipelineHandle { unimplemented!() }
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn create_pipeline(&mut self, name: &str, window: WindowHandle) -> PipelineHandle { unimplemented!() }
[INFO] [stdout]    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]   --> src/hardware.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render(&mut self, encoder: RenderEncoder, window: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render(&mut self, encoder: RenderEncoder, window: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn create_window(&mut self, window: &Window) -> WindowHandle { unimplemented!() }
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> src/hardware.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn destroy_window(&mut self, handle: WindowHandle) { unimplemented!() }
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/hardware.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn write_buffer(&mut self, buffer: BufferHandle, data: &[u8]) { unimplemented!() }
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/hardware.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn write_buffer(&mut self, buffer: BufferHandle, data: &[u8]) { unimplemented!() }
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/hardware.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn save_screenshot(&mut self, window: WindowHandle, path: &str) { unimplemented!() }
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/hardware.rs:16:54
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn save_screenshot(&mut self, window: WindowHandle, path: &str) { unimplemented!() }
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `half_size1`
[INFO] [stdout]    --> src/collision_detection.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 199 |     half_size1: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_size1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `half_size2`
[INFO] [stdout]    --> src/collision_detection.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 |     half_size2: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_size2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/text.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn build_mesh(mut self, rect: Rect) -> Mesh {
[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/text.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut mesh = Mesh::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glyphs_count`
[INFO] [stdout]    --> src/text.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let glyphs_count = face.number_of_glyphs();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_glyphs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/text.rs:254:7
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let mut mesh = Mesh::new();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/text.rs:253:23
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn render(&self, text: &str) -> Mesh {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 window_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `window_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:934:5
[INFO] [stdout]     |
[INFO] [stdout] 934 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:970:5
[INFO] [stdout]     |
[INFO] [stdout] 970 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/wgpu/hardware.rs:996:5
[INFO] [stdout]     |
[INFO] [stdout] 996 |                 device_id,
[INFO] [stdout]     |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_synthetic`
[INFO] [stdout]    --> src/wgpu/hardware.rs:998:5
[INFO] [stdout]     |
[INFO] [stdout] 998 |                 is_synthetic,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: try ignoring the field: `is_synthetic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1002:6
[INFO] [stdout]      |
[INFO] [stdout] 1002 |                     location,
[INFO] [stdout]      |                     ^^^^^^^^ help: try ignoring the field: `location: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |                 device_id,
[INFO] [stdout]      |                 ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `phase`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1054:5
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 phase,
[INFO] [stdout]      |                 ^^^^^ help: try ignoring the field: `phase: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DrawItem` is more private than the item `Lineariser::items`
[INFO] [stdout]    --> src/compositor.rs:217:2
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub items: Vec<DrawItem>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^ field `Lineariser::items` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `DrawItem` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/compositor.rs:177:1
[INFO] [stdout]     |
[INFO] [stdout] 177 | enum DrawItem {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_node`
[INFO] [stdout]   --> src/gltf.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn load_node(n: &gltf::Node, buffers: &[Data], state: &mut State, parser_state: &mut ParserState, parent: NodeParent) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_node` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/gltf.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct ParserState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_scene`
[INFO] [stdout]    --> src/gltf.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn load_scene(s: &gltf::Scene, buffers: &[Data], state: &mut State, parser_state: &mut ParserState) -> ArenaId<Scene> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_scene` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gltf.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | struct ParserState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_animation`
[INFO] [stdout]    --> src/gltf.rs:155:1
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn load_animation(anim: &gltf::Animation, buffers: &[Data], state: &mut State, parser_state: &mut ParserState) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_animation` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gltf.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | struct ParserState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `wgpu::hardware::UserEvent` is more private than the item `WgpuHardware::new`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1329:2
[INFO] [stdout]      |
[INFO] [stdout] 1329 |     pub fn new(proxy: winit::event_loop::EventLoopProxy<UserEvent>, instance: Arc<wgpu::Instance>, adapter: Arc<wgpu::Adapter>, device: Arc<wgpu::Device>, queue: Arc<wgpu::Queue>) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `WgpuHardware::new` is reachable at visibility `pub(in crate::wgpu)`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `wgpu::hardware::UserEvent` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/wgpu/hardware.rs:48:1
[INFO] [stdout]      |
[INFO] [stdout]   48 | enum UserEvent{
[INFO] [stdout]      | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeComputedMetadata` is never constructed
[INFO] [stdout]   --> src/engine.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct NodeComputedMetadata {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ascenes` is never read
[INFO] [stdout]    --> src/types.rs:644:2
[INFO] [stdout]     |
[INFO] [stdout] 643 | pub struct Asset {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 644 |     ascenes: Vec<Scene>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `capacity` is never used
[INFO] [stdout]   --> src/buffer.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Buffer {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn capacity(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteCommand` is never constructed
[INFO] [stdout]  --> src/internal_types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct WriteCommand {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EngineEvent` is never used
[INFO] [stdout]   --> src/internal_types.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum EngineEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RawCamera {
[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/internal_types.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | / #[repr(C)]
[INFO] [stdout] 32 | | #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 33 | | pub struct RawCamera {
[INFO] [stdout] 34 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct RawInstance {
[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/internal_types.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | / #[repr(C)]
[INFO] [stdout] 38 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable, Debug)]
[INFO] [stdout] 39 | | pub struct RawInstance {
[INFO] [stdout] 40 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 41 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct RawPointLight {
[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/internal_types.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | / #[repr(C)]
[INFO] [stdout] 44 | | #[derive(Debug, Copy, Clone, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 45 | | pub struct RawPointLight {
[INFO] [stdout] 46 | |     pub color: [f32; 3], // 12 bytes
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |     _padding3: f32,      // 4 bytes to align the total size to 16 bytes
[INFO] [stdout] 52 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct RawMaterial {
[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/internal_types.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | / #[repr(C)]
[INFO] [stdout] 61 | | #[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 62 | | pub struct RawMaterial {
[INFO] [stdout] 63 | |     pub base_color_factor: [f32; 4],  // 16 bytes
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub _padding: f32,                // 4 bytes to align to 16 bytes
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyVertex` is never constructed
[INFO] [stdout]   --> src/compositor.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 |             struct MyVertex { position: [f32; 2] }
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Size` is never used
[INFO] [stdout]    --> src/compositor.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub enum Size {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_collision` is never used
[INFO] [stdout]    --> src/physics/mod.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn get_collision(node1: &Node, node2: &Node) -> Option<CollisionInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePrinter` is never constructed
[INFO] [stdout]  --> src/debug.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ChangePrinter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `print`, and `remove` are never used
[INFO] [stdout]   --> src/debug.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ChangePrinter {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn print(&mut self, slot: u32, new: String) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn remove(&mut self, slot: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Surface` is never constructed
[INFO] [stdout]   --> src/hardware.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Surface {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pipeline` is never constructed
[INFO] [stdout]   --> src/hardware.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Pipeline {}
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create_bind_group` is never used
[INFO] [stdout]  --> src/wgpu/wgpu_types.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait BindableBufferRecipe {
[INFO] [stdout]   |           -------------------- associated function in this trait
[INFO] [stdout] 2 |     fn create_bind_group_layout(device: &wgpu::Device) -> wgpu::BindGroupLayout;
[INFO] [stdout] 3 |     fn create_bind_group(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WgpuBuffer` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait WgpuBuffer {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VertexBufferRecipe` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub trait VertexBufferRecipe {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Vertices {
[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/wgpu/wgpu_types.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | / #[repr(C)]
[INFO] [stdout] 47 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 48 | | pub struct Vertices {
[INFO] [stdout] 49 | |     pub position: [f32; 3],
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Vertices {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 53 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct Normals {
[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/wgpu/wgpu_types.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | / #[repr(C)]
[INFO] [stdout] 73 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 74 | | pub struct Normals {
[INFO] [stdout] 75 | |     normal: [f32; 3],
[INFO] [stdout] 76 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TexCoords {
[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/wgpu/wgpu_types.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | / #[repr(C)]
[INFO] [stdout] 93 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 94 | | pub struct TexCoords {
[INFO] [stdout] 95 | |     tex_coords: [f32; 2],
[INFO] [stdout] 96 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `desc` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | impl TexCoords {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 99 |     pub fn desc() -> wgpu::VertexBufferLayout<'static> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct MaterialUniform {
[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/wgpu/wgpu_types.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | / #[repr(C)]
[INFO] [stdout] 113 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 114 | | struct MaterialUniform {
[INFO] [stdout] 115 | |     base_color: [f32; 4],
[INFO] [stdout] ...   |
[INFO] [stdout] 118 | |     padding: [f32; 2], // Align to 16 bytes
[INFO] [stdout] 119 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct RawCamera {
[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/wgpu/wgpu_types.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | / #[repr(C)]
[INFO] [stdout] 122 | | #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 123 | | pub struct RawCamera {
[INFO] [stdout] 124 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 125 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct RawInstance {
[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/wgpu/wgpu_types.rs:164:1
[INFO] [stdout]     |
[INFO] [stdout] 164 | / #[repr(C)]
[INFO] [stdout] 165 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable, Debug)]
[INFO] [stdout] 166 | | pub struct RawInstance {
[INFO] [stdout] 167 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 168 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct Keyframe {
[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/wgpu/wgpu_types.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | / #[repr(C)]
[INFO] [stdout] 207 | | #[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 208 | | pub struct Keyframe {
[INFO] [stdout] 209 | |     pub value: [[f32; 4]; 4],
[INFO] [stdout] 210 | |     pub is_running: u32,
[INFO] [stdout] 211 | |     pub node_inx: u32,
[INFO] [stdout] 212 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct RawPointLight {
[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/wgpu/wgpu_types.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | / #[repr(C)]
[INFO] [stdout] 215 | | #[derive(Debug, Copy, Clone, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 216 | | pub struct RawPointLight {
[INFO] [stdout] 217 | |     pub color: [f32; 3], // 12 bytes
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |     _padding3: f32,      // 4 bytes to align the total size to 16 bytes
[INFO] [stdout] 223 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl RawPointLight {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 226 |     pub fn new(color: [f32; 3], intensity: f32, position: [f32; 3]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Colors` is never constructed
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct Colors {}
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `desc` is never used
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl Colors {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 278 |     pub fn desc() -> wgpu::VertexBufferLayout<'static> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1304:2
[INFO] [stdout]      |
[INFO] [stdout] 1302 | struct BufferContext {
[INFO] [stdout]      |        ------------- field in this struct
[INFO] [stdout] 1303 |     id: u32,
[INFO] [stdout] 1304 |     name: String,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `texture` is never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1312:2
[INFO] [stdout]      |
[INFO] [stdout] 1310 | struct TextureContext {
[INFO] [stdout]      |        -------------- field in this struct
[INFO] [stdout] 1311 |     id: u32,
[INFO] [stdout] 1312 |     texture: wgpu::Texture,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device`, `queue`, `instance`, and `adapter` are never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1317:2
[INFO] [stdout]      |
[INFO] [stdout] 1316 | pub struct WgpuHardware {
[INFO] [stdout]      |            ------------ fields in this struct
[INFO] [stdout] 1317 |     device: Arc<wgpu::Device>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 1318 |     queue: Arc<wgpu::Queue>,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 1319 |     instance: Arc<wgpu::Instance>,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 1320 |     adapter: Arc<wgpu::Adapter>,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `size`, and `id` are never read
[INFO] [stdout]  --> src/mock_hardware.rs:5:2
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct MockBuffer {
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 5 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     size: u64,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 7 |     id: u32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_axis_aligned` is never used
[INFO] [stdout]  --> src/collision_detection.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn is_axis_aligned(axis: &Vec3) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CollisionInfo` is never constructed
[INFO] [stdout]   --> src/collision_detection.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CollisionInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `obb_collide` is never used
[INFO] [stdout]   --> src/collision_detection.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn obb_collide(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_contact_point_edge` is never used
[INFO] [stdout]    --> src/collision_detection.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn compute_contact_point_edge(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_points_on_lines` is never used
[INFO] [stdout]    --> src/collision_detection.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn closest_points_on_lines(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `basis` is never used
[INFO] [stdout]    --> src/orbit.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl OrbitController {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn basis(&self) -> (Vec3, Vec3, Vec3) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orbit_rotation` is never used
[INFO] [stdout]    --> src/orbit.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn orbit_rotation(yaw: f32, pitch: f32) -> Quat {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orbit_forward` is never used
[INFO] [stdout]    --> src/orbit.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn orbit_forward(yaw: f32, pitch: f32) -> Vec3 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orbit_axes` is never used
[INFO] [stdout]    --> src/orbit.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn orbit_axes(yaw: f32, forward: Vec3) -> (Vec3, Vec3) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tessellate_quad_bezier` is never used
[INFO] [stdout]    --> src/text.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn tessellate_quad_bezier(x0: f32, y0: f32, x1: f32, y1: f32, x2: f32, y2: f32) -> Vec<[f32; 2]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tessellate_cubic_bezier` is never used
[INFO] [stdout]    --> src/text.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn tessellate_cubic_bezier(x0: f32, y0: f32, x1: f32, y1: f32, x2: f32, y2: f32, x3: f32, y3: f32) -> Vec<[f32; 2]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font`, `font_size`, and `white_space` are never read
[INFO] [stdout]    --> src/text.rs:246:2
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct TextRenderer {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 246 |     font: FontMesh,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 247 |     font_size: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 248 |     white_space: WhiteSpace,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ixx` should have a snake case name
[INFO] [stdout]    --> src/types.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 let Ixx = (1.0 / 12.0) * (height.powi(2) + depth.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `ixx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Iyy` should have a snake case name
[INFO] [stdout]    --> src/types.rs:415:21
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 let Iyy = (1.0 / 12.0) * (width.powi(2) + depth.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `iyy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Izz` should have a snake case name
[INFO] [stdout]    --> src/types.rs:416:21
[INFO] [stdout]     |
[INFO] [stdout] 416 |                 let Izz = (1.0 / 12.0) * (width.powi(2) + height.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `izz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/arena.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter(&self) -> ArenaIterator<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter(&self) -> ArenaIterator<'_, T> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/arena.rs:130:21
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn iter_mut(&mut self) -> ArenaIterMut<T> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn iter_mut(&mut self) -> ArenaIterMut<'_, T> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1347:3
[INFO] [stdout]      |
[INFO] [stdout] 1347 | /         self.proxy.send_event(UserEvent::CreateBuffer {
[INFO] [stdout] 1348 | |             name: name.to_string(),
[INFO] [stdout] 1349 | |             buffer_id,
[INFO] [stdout] 1350 | |             size,
[INFO] [stdout] 1351 | |         });
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1347 |         let _ = self.proxy.send_event(UserEvent::CreateBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1360:3
[INFO] [stdout]      |
[INFO] [stdout] 1360 | /         self.proxy.send_event(UserEvent::DestroyBuffer {
[INFO] [stdout] 1361 | |             buffer_id: handle.id,
[INFO] [stdout] 1362 | |         });
[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] 1360 |         let _ = self.proxy.send_event(UserEvent::DestroyBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1367:3
[INFO] [stdout]      |
[INFO] [stdout] 1367 | /         self.proxy.send_event(UserEvent::CreateTexture {
[INFO] [stdout] 1368 | |             texture_id,
[INFO] [stdout] 1369 | |             name: name.to_string(),
[INFO] [stdout] 1370 | |             data: data.to_vec(),
[INFO] [stdout] 1371 | |             width,
[INFO] [stdout] 1372 | |             height,
[INFO] [stdout] 1373 | |         });
[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] 1367 |         let _ = self.proxy.send_event(UserEvent::CreateTexture {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1392:3
[INFO] [stdout]      |
[INFO] [stdout] 1392 |         self.proxy.send_event(UserEvent::CreateWindow(args));
[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] 1392 |         let _ = self.proxy.send_event(UserEvent::CreateWindow(args));
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1400:3
[INFO] [stdout]      |
[INFO] [stdout] 1400 | /         self.proxy.send_event(UserEvent::DestroyWindow {
[INFO] [stdout] 1401 | |             window_id: handle.id,
[INFO] [stdout] 1402 | |         });
[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] 1400 |         let _ = self.proxy.send_event(UserEvent::DestroyWindow {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1407:3
[INFO] [stdout]      |
[INFO] [stdout] 1407 | /         self.proxy.send_event(UserEvent::CreatePipeline {
[INFO] [stdout] 1408 | |             window,
[INFO] [stdout] 1409 | |             name: name.to_string(),
[INFO] [stdout] 1410 | |             pipeline_id,
[INFO] [stdout] 1411 | |         });
[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] 1407 |         let _ = self.proxy.send_event(UserEvent::CreatePipeline {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1419:3
[INFO] [stdout]      |
[INFO] [stdout] 1419 | /         self.proxy.send_event(UserEvent::WriteBuffer {
[INFO] [stdout] 1420 | |             buffer,
[INFO] [stdout] 1421 | |             data: data.to_vec(),
[INFO] [stdout] 1422 | |         });
[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] 1419 |         let _ = self.proxy.send_event(UserEvent::WriteBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1426:3
[INFO] [stdout]      |
[INFO] [stdout] 1426 | /         self.proxy.send_event(UserEvent::Render {
[INFO] [stdout] 1427 | |             window,
[INFO] [stdout] 1428 | |             encoder,
[INFO] [stdout] 1429 | |         });
[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] 1426 |         let _ = self.proxy.send_event(UserEvent::Render {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1433:3
[INFO] [stdout]      |
[INFO] [stdout] 1433 | /         self.proxy.send_event(UserEvent::SaveScreenshot {
[INFO] [stdout] 1434 | |             window,
[INFO] [stdout] 1435 | |             path: path.to_string(),
[INFO] [stdout] 1436 | |         });
[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] 1433 |         let _ = self.proxy.send_event(UserEvent::SaveScreenshot {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `chars` should have an upper case name
[INFO] [stdout]    --> src/text.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const chars : [char; 95] = [
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 148 - const chars : [char; 95] = [
[INFO] [stdout] 148 + const CHARS : [char; 95] = [
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `half_size1`
[INFO] [stdout]    --> src/collision_detection.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 199 |     half_size1: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_size1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `half_size2`
[INFO] [stdout]    --> src/collision_detection.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 |     half_size2: Vec3,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_half_size2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child3`
[INFO] [stdout]   --> src/utility.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let child3 = nodes.insert(Node {
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_child3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/text.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub fn build_mesh(mut self, rect: Rect) -> Mesh {
[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/text.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut mesh = Mesh::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `glyphs_count`
[INFO] [stdout]    --> src/text.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let glyphs_count = face.number_of_glyphs();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_glyphs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/text.rs:254:7
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let mut mesh = Mesh::new();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/text.rs:253:23
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn render(&self, text: &str) -> Mesh {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `compositor::DrawItem` is more private than the item `compositor::Lineariser::items`
[INFO] [stdout]    --> src/compositor.rs:217:2
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub items: Vec<DrawItem>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^ field `compositor::Lineariser::items` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `compositor::DrawItem` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/compositor.rs:177:1
[INFO] [stdout]     |
[INFO] [stdout] 177 | enum DrawItem {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_node`
[INFO] [stdout]   --> src/gltf.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn load_node(n: &gltf::Node, buffers: &[Data], state: &mut State, parser_state: &mut ParserState, parent: NodeParent) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_node` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/gltf.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct ParserState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_scene`
[INFO] [stdout]    --> src/gltf.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn load_scene(s: &gltf::Scene, buffers: &[Data], state: &mut State, parser_state: &mut ParserState) -> ArenaId<Scene> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_scene` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gltf.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | struct ParserState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ParserState` is more private than the item `load_animation`
[INFO] [stdout]    --> src/gltf.rs:155:1
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn load_animation(anim: &gltf::Animation, buffers: &[Data], state: &mut State, parser_state: &mut ParserState) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `load_animation` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ParserState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gltf.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | struct ParserState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `wgpu::hardware::UserEvent` is more private than the item `WgpuHardware::new`
[INFO] [stdout]     --> src/wgpu/hardware.rs:1329:2
[INFO] [stdout]      |
[INFO] [stdout] 1329 |     pub fn new(proxy: winit::event_loop::EventLoopProxy<UserEvent>, instance: Arc<wgpu::Instance>, adapter: Arc<wgpu::Adapter>, device: Arc<wgpu::Device>, queue: Arc<wgpu::Queue>) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `WgpuHardware::new` is reachable at visibility `pub(in crate::wgpu)`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `wgpu::hardware::UserEvent` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/wgpu/hardware.rs:48:1
[INFO] [stdout]      |
[INFO] [stdout]   48 | enum UserEvent{
[INFO] [stdout]      | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeComputedMetadata` is never constructed
[INFO] [stdout]   --> src/engine.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct NodeComputedMetadata {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ascenes` is never read
[INFO] [stdout]    --> src/types.rs:644:2
[INFO] [stdout]     |
[INFO] [stdout] 643 | pub struct Asset {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 644 |     ascenes: Vec<Scene>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteCommand` is never constructed
[INFO] [stdout]  --> src/internal_types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct WriteCommand {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EngineEvent` is never used
[INFO] [stdout]   --> src/internal_types.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum EngineEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RawCamera {
[INFO] [stdout]    |            ^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ui v0.1.0 (/opt/rustwide/workdir/examples/ui)
[INFO] [stderr]     Checking cube v0.1.0 (/opt/rustwide/workdir/examples/cube)
[INFO] [stderr]     Checking pge_editor v0.1.0 (/opt/rustwide/workdir/editor)
[INFO] [stderr]     Checking fps v0.1.0 (/opt/rustwide/workdir/examples/fps)
[INFO] [stderr]     Checking puppyarm v0.1.0 (/opt/rustwide/workdir/examples/puppyarm)
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/internal_types.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | / #[repr(C)]
[INFO] [stdout] 32 | | #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 33 | | pub struct RawCamera {
[INFO] [stdout] 34 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct RawInstance {
[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/internal_types.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | / #[repr(C)]
[INFO] [stdout] 38 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable, Debug)]
[INFO] [stdout] 39 | | pub struct RawInstance {
[INFO] [stdout] 40 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 41 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct RawPointLight {
[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/internal_types.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | / #[repr(C)]
[INFO] [stdout] 44 | | #[derive(Debug, Copy, Clone, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 45 | | pub struct RawPointLight {
[INFO] [stdout] 46 | |     pub color: [f32; 3], // 12 bytes
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |     _padding3: f32,      // 4 bytes to align the total size to 16 bytes
[INFO] [stdout] 52 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/internal_types.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct RawMaterial {
[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/internal_types.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | / #[repr(C)]
[INFO] [stdout] 61 | | #[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 62 | | pub struct RawMaterial {
[INFO] [stdout] 63 | |     pub base_color_factor: [f32; 4],  // 16 bytes
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub _padding: f32,                // 4 bytes to align to 16 bytes
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyVertex` is never constructed
[INFO] [stdout]   --> src/compositor.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 |             struct MyVertex { position: [f32; 2] }
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Size` is never used
[INFO] [stdout]    --> src/compositor.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub enum Size {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_collision` is never used
[INFO] [stdout]    --> src/physics/mod.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn get_collision(node1: &Node, node2: &Node) -> Option<CollisionInfo> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePrinter` is never constructed
[INFO] [stdout]  --> src/debug.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ChangePrinter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `print`, and `remove` are never used
[INFO] [stdout]   --> src/debug.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ChangePrinter {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn print(&mut self, slot: u32, new: String) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn remove(&mut self, slot: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Surface` is never constructed
[INFO] [stdout]   --> src/hardware.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Surface {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pipeline` is never constructed
[INFO] [stdout]   --> src/hardware.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Pipeline {}
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create_bind_group` is never used
[INFO] [stdout]  --> src/wgpu/wgpu_types.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait BindableBufferRecipe {
[INFO] [stdout]   |           -------------------- associated function in this trait
[INFO] [stdout] 2 |     fn create_bind_group_layout(device: &wgpu::Device) -> wgpu::BindGroupLayout;
[INFO] [stdout] 3 |     fn create_bind_group(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WgpuBuffer` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait WgpuBuffer {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VertexBufferRecipe` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub trait VertexBufferRecipe {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Vertices {
[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/wgpu/wgpu_types.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | / #[repr(C)]
[INFO] [stdout] 47 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 48 | | pub struct Vertices {
[INFO] [stdout] 49 | |     pub position: [f32; 3],
[INFO] [stdout] 50 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Vertices {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 53 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct Normals {
[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/wgpu/wgpu_types.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | / #[repr(C)]
[INFO] [stdout] 73 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 74 | | pub struct Normals {
[INFO] [stdout] 75 | |     normal: [f32; 3],
[INFO] [stdout] 76 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TexCoords {
[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/wgpu/wgpu_types.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | / #[repr(C)]
[INFO] [stdout] 93 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 94 | | pub struct TexCoords {
[INFO] [stdout] 95 | |     tex_coords: [f32; 2],
[INFO] [stdout] 96 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `desc` is never used
[INFO] [stdout]   --> src/wgpu/wgpu_types.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | impl TexCoords {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 99 |     pub fn desc() -> wgpu::VertexBufferLayout<'static> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct MaterialUniform {
[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/wgpu/wgpu_types.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | / #[repr(C)]
[INFO] [stdout] 113 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 114 | | struct MaterialUniform {
[INFO] [stdout] 115 | |     base_color: [f32; 4],
[INFO] [stdout] ...   |
[INFO] [stdout] 118 | |     padding: [f32; 2], // Align to 16 bytes
[INFO] [stdout] 119 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct RawCamera {
[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/wgpu/wgpu_types.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | / #[repr(C)]
[INFO] [stdout] 122 | | #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 123 | | pub struct RawCamera {
[INFO] [stdout] 124 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 125 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct RawInstance {
[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/wgpu/wgpu_types.rs:164:1
[INFO] [stdout]     |
[INFO] [stdout] 164 | / #[repr(C)]
[INFO] [stdout] 165 | | #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable, Debug)]
[INFO] [stdout] 166 | | pub struct RawInstance {
[INFO] [stdout] 167 | |     pub model: [[f32; 4]; 4],
[INFO] [stdout] 168 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct Keyframe {
[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/wgpu/wgpu_types.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | / #[repr(C)]
[INFO] [stdout] 207 | | #[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 208 | | pub struct Keyframe {
[INFO] [stdout] 209 | |     pub value: [[f32; 4]; 4],
[INFO] [stdout] 210 | |     pub is_running: u32,
[INFO] [stdout] 211 | |     pub node_inx: u32,
[INFO] [stdout] 212 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct RawPointLight {
[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/wgpu/wgpu_types.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | / #[repr(C)]
[INFO] [stdout] 215 | | #[derive(Debug, Copy, Clone, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
[INFO] [stdout] 216 | | pub struct RawPointLight {
[INFO] [stdout] 217 | |     pub color: [f32; 3], // 12 bytes
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |     _padding3: f32,      // 4 bytes to align the total size to 16 bytes
[INFO] [stdout] 223 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl RawPointLight {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 226 |     pub fn new(color: [f32; 3], intensity: f32, position: [f32; 3]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Colors` is never constructed
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct Colors {}
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `desc` is never used
[INFO] [stdout]    --> src/wgpu/wgpu_types.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl Colors {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 278 |     pub fn desc() -> wgpu::VertexBufferLayout<'static> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1304:2
[INFO] [stdout]      |
[INFO] [stdout] 1302 | struct BufferContext {
[INFO] [stdout]      |        ------------- field in this struct
[INFO] [stdout] 1303 |     id: u32,
[INFO] [stdout] 1304 |     name: String,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `texture` is never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1312:2
[INFO] [stdout]      |
[INFO] [stdout] 1310 | struct TextureContext {
[INFO] [stdout]      |        -------------- field in this struct
[INFO] [stdout] 1311 |     id: u32,
[INFO] [stdout] 1312 |     texture: wgpu::Texture,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device`, `queue`, `instance`, and `adapter` are never read
[INFO] [stdout]     --> src/wgpu/hardware.rs:1317:2
[INFO] [stdout]      |
[INFO] [stdout] 1316 | pub struct WgpuHardware {
[INFO] [stdout]      |            ------------ fields in this struct
[INFO] [stdout] 1317 |     device: Arc<wgpu::Device>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 1318 |     queue: Arc<wgpu::Queue>,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 1319 |     instance: Arc<wgpu::Instance>,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 1320 |     adapter: Arc<wgpu::Adapter>,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `size`, and `id` are never read
[INFO] [stdout]  --> src/mock_hardware.rs:5:2
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct MockBuffer {
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 5 |     name: String,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     size: u64,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 7 |     id: u32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FaceA` and `FaceB` are never constructed
[INFO] [stdout]   --> src/collision_detection.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     enum AxisType {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 56 |         FaceA(usize),
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 57 |         FaceB(usize),
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `basis` is never used
[INFO] [stdout]    --> src/orbit.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl OrbitController {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn basis(&self) -> (Vec3, Vec3, Vec3) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tessellate_quad_bezier` is never used
[INFO] [stdout]    --> src/text.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn tessellate_quad_bezier(x0: f32, y0: f32, x1: f32, y1: f32, x2: f32, y2: f32) -> Vec<[f32; 2]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tessellate_cubic_bezier` is never used
[INFO] [stdout]    --> src/text.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn tessellate_cubic_bezier(x0: f32, y0: f32, x1: f32, y1: f32, x2: f32, y2: f32, x3: f32, y3: f32) -> Vec<[f32; 2]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font`, `font_size`, and `white_space` are never read
[INFO] [stdout]    --> src/text.rs:246:2
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct TextRenderer {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 246 |     font: FontMesh,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 247 |     font_size: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 248 |     white_space: WhiteSpace,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ixx` should have a snake case name
[INFO] [stdout]    --> src/types.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 let Ixx = (1.0 / 12.0) * (height.powi(2) + depth.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `ixx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Iyy` should have a snake case name
[INFO] [stdout]    --> src/types.rs:415:21
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 let Iyy = (1.0 / 12.0) * (width.powi(2) + depth.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `iyy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Izz` should have a snake case name
[INFO] [stdout]    --> src/types.rs:416:21
[INFO] [stdout]     |
[INFO] [stdout] 416 |                 let Izz = (1.0 / 12.0) * (width.powi(2) + height.powi(2));
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case (notice the capitalization): `izz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/arena.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter(&self) -> ArenaIterator<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter(&self) -> ArenaIterator<'_, T> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/arena.rs:130:21
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn iter_mut(&mut self) -> ArenaIterMut<T> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn iter_mut(&mut self) -> ArenaIterMut<'_, T> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1347:3
[INFO] [stdout]      |
[INFO] [stdout] 1347 | /         self.proxy.send_event(UserEvent::CreateBuffer {
[INFO] [stdout] 1348 | |             name: name.to_string(),
[INFO] [stdout] 1349 | |             buffer_id,
[INFO] [stdout] 1350 | |             size,
[INFO] [stdout] 1351 | |         });
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1347 |         let _ = self.proxy.send_event(UserEvent::CreateBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1360:3
[INFO] [stdout]      |
[INFO] [stdout] 1360 | /         self.proxy.send_event(UserEvent::DestroyBuffer {
[INFO] [stdout] 1361 | |             buffer_id: handle.id,
[INFO] [stdout] 1362 | |         });
[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] 1360 |         let _ = self.proxy.send_event(UserEvent::DestroyBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1367:3
[INFO] [stdout]      |
[INFO] [stdout] 1367 | /         self.proxy.send_event(UserEvent::CreateTexture {
[INFO] [stdout] 1368 | |             texture_id,
[INFO] [stdout] 1369 | |             name: name.to_string(),
[INFO] [stdout] 1370 | |             data: data.to_vec(),
[INFO] [stdout] 1371 | |             width,
[INFO] [stdout] 1372 | |             height,
[INFO] [stdout] 1373 | |         });
[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] 1367 |         let _ = self.proxy.send_event(UserEvent::CreateTexture {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1392:3
[INFO] [stdout]      |
[INFO] [stdout] 1392 |         self.proxy.send_event(UserEvent::CreateWindow(args));
[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] 1392 |         let _ = self.proxy.send_event(UserEvent::CreateWindow(args));
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1400:3
[INFO] [stdout]      |
[INFO] [stdout] 1400 | /         self.proxy.send_event(UserEvent::DestroyWindow {
[INFO] [stdout] 1401 | |             window_id: handle.id,
[INFO] [stdout] 1402 | |         });
[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] 1400 |         let _ = self.proxy.send_event(UserEvent::DestroyWindow {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1407:3
[INFO] [stdout]      |
[INFO] [stdout] 1407 | /         self.proxy.send_event(UserEvent::CreatePipeline {
[INFO] [stdout] 1408 | |             window,
[INFO] [stdout] 1409 | |             name: name.to_string(),
[INFO] [stdout] 1410 | |             pipeline_id,
[INFO] [stdout] 1411 | |         });
[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] 1407 |         let _ = self.proxy.send_event(UserEvent::CreatePipeline {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1419:3
[INFO] [stdout]      |
[INFO] [stdout] 1419 | /         self.proxy.send_event(UserEvent::WriteBuffer {
[INFO] [stdout] 1420 | |             buffer,
[INFO] [stdout] 1421 | |             data: data.to_vec(),
[INFO] [stdout] 1422 | |         });
[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] 1419 |         let _ = self.proxy.send_event(UserEvent::WriteBuffer {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1426:3
[INFO] [stdout]      |
[INFO] [stdout] 1426 | /         self.proxy.send_event(UserEvent::Render {
[INFO] [stdout] 1427 | |             window,
[INFO] [stdout] 1428 | |             encoder,
[INFO] [stdout] 1429 | |         });
[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] 1426 |         let _ = self.proxy.send_event(UserEvent::Render {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/wgpu/hardware.rs:1433:3
[INFO] [stdout]      |
[INFO] [stdout] 1433 | /         self.proxy.send_event(UserEvent::SaveScreenshot {
[INFO] [stdout] 1434 | |             window,
[INFO] [stdout] 1435 | |             path: path.to_string(),
[INFO] [stdout] 1436 | |         });
[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] 1433 |         let _ = self.proxy.send_event(UserEvent::SaveScreenshot {
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `chars` should have an upper case name
[INFO] [stdout]    --> src/text.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const chars : [char; 95] = [
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 148 - const chars : [char; 95] = [
[INFO] [stdout] 148 + const CHARS : [char; 95] = [
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::default`
[INFO] [stdout]  --> examples/cube/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::default;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> examples/cube/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> examples/cube/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `criterion_main`
[INFO] [stdout]  --> benches/process_nodes.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[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]   --> benches/process_nodes.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut scene = Scene::default();
[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 import: `std::default`
[INFO] [stdout]  --> examples/cube/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::default;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> examples/cube/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> examples/cube/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `criterion_main`
[INFO] [stdout]  --> benches/process_nodes.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use criterion::{criterion_group, criterion_main, Criterion};
[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]   --> benches/process_nodes.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut scene = Scene::default();
[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]    --> examples/fps/src/main.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut rng = rand::thread_rng();
[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: `node_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:357:8
[INFO] [stdout]     |
[INFO] [stdout] 357 |         for (node_id, node) in &mut state.nodes.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:482:8
[INFO] [stdout]     |
[INFO] [stdout] 482 |             let node_id = state.nodes.insert(cube_node);
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:501:34
[INFO] [stdout]     |
[INFO] [stdout] 501 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> examples/fps/src/main.rs:539:7
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let player = match self.player_id {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:551:31
[INFO] [stdout]     |
[INFO] [stdout] 551 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/fps/src/main.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut rng = rand::thread_rng();
[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: `node_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:357:8
[INFO] [stdout]     |
[INFO] [stdout] 357 |         for (node_id, node) in &mut state.nodes.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:482:8
[INFO] [stdout]     |
[INFO] [stdout] 482 |             let node_id = state.nodes.insert(cube_node);
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:501:34
[INFO] [stdout]     |
[INFO] [stdout] 501 |     fn on_keyboard_input(&mut self, window_id: ArenaId<Window>, key: KeyboardKey, action: KeyAction, state: &mut State) {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> examples/fps/src/main.rs:539:7
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let player = match self.player_id {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_id`
[INFO] [stdout]    --> examples/fps/src/main.rs:551:31
[INFO] [stdout]     |
[INFO] [stdout] 551 |     fn on_mouse_input(&mut self, window_id: ArenaId<Window>, event: MouseEvent, state: &mut State) {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `speed` is never read
[INFO] [stdout]    --> examples/fps/src/main.rs:105:2
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub struct FpsShooter {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 105 |     speed: f32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `speed` is never read
[INFO] [stdout]    --> examples/fps/src/main.rs:105:2
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub struct FpsShooter {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 105 |     speed: f32,
[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 1m 35s
[INFO] running `Command { std: "docker" "inspect" "a8fa9b6d8fe5a77063c33538600fb3f2bbcffea304fb4b4856992425c9147a37", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8fa9b6d8fe5a77063c33538600fb3f2bbcffea304fb4b4856992425c9147a37", kill_on_drop: false }`
[INFO] [stdout] a8fa9b6d8fe5a77063c33538600fb3f2bbcffea304fb4b4856992425c9147a37
