[INFO] cloning repository https://github.com/MrVintage710/Project_Blueberry
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MrVintage710/Project_Blueberry" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrVintage710%2FProject_Blueberry", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrVintage710%2FProject_Blueberry'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8a3a276dd397f3dd06e7cdd18e631c340a9b7be9
[INFO] checking MrVintage710/Project_Blueberry against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrVintage710%2FProject_Blueberry" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/MrVintage710/Project_Blueberry
[INFO] finished tweaking git repo https://github.com/MrVintage710/Project_Blueberry
[INFO] tweaked toml for git repo https://github.com/MrVintage710/Project_Blueberry written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MrVintage710/Project_Blueberry on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MrVintage710/Project_Blueberry 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a1b8437f58e75d3f0972d21904ee89d804a4402e8971091ffa6fa656aec16886
[INFO] running `Command { std: "docker" "start" "-a" "a1b8437f58e75d3f0972d21904ee89d804a4402e8971091ffa6fa656aec16886", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a1b8437f58e75d3f0972d21904ee89d804a4402e8971091ffa6fa656aec16886", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a1b8437f58e75d3f0972d21904ee89d804a4402e8971091ffa6fa656aec16886", kill_on_drop: false }`
[INFO] [stdout] a1b8437f58e75d3f0972d21904ee89d804a4402e8971091ffa6fa656aec16886
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 44361e4203411c7f1129326f09eb753f2ac4cbb0beb695343793428c5aef684b
[INFO] running `Command { std: "docker" "start" "-a" "44361e4203411c7f1129326f09eb753f2ac4cbb0beb695343793428c5aef684b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.103
[INFO] [stderr]    Compiling proc-macro2 v1.0.29
[INFO] [stderr]     Checking libloading v0.7.0
[INFO] [stderr]     Checking smallvec v1.7.0
[INFO] [stderr]    Compiling pkg-config v0.3.20
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]     Checking instant v0.1.11
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]     Checking lock_api v0.4.5
[INFO] [stderr]    Compiling syn v1.0.77
[INFO] [stderr]    Compiling nom v7.0.0
[INFO] [stderr]     Checking minimal-lexical v0.1.3
[INFO] [stderr]    Compiling crossbeam-queue v0.3.2
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.4
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking fixedbitset v0.4.0
[INFO] [stderr]     Checking ahash v0.4.7
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.1
[INFO] [stderr]     Checking petgraph v0.6.0
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling cc v1.0.70
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]     Checking xml-rs v0.8.4
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling wgpu-core v0.10.4
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking gpu-alloc v0.5.2
[INFO] [stderr]     Checking ash v0.33.3+1.2.191
[INFO] [stderr]     Checking wgpu-types v0.10.0
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]     Checking glow v0.11.0
[INFO] [stderr]     Checking inplace_it v0.3.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking renderdoc-sys v0.7.1
[INFO] [stderr]     Checking arrayvec v0.7.1
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking profiling v1.0.3
[INFO] [stderr]     Checking gpu-descriptor v0.2.1
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]     Checking chlorine v1.0.7
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]     Checking inflate v0.3.4
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking pollster v0.2.4
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]     Checking num-iter v0.1.42
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]    Compiling imgui-sys v0.7.0
[INFO] [stderr]     Checking wide v0.6.5
[INFO] [stderr]     Checking png v0.11.0
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking khronos-egl v4.1.0
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking mio v0.7.13
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking mio-misc v1.2.1
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking ultraviolet v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.29
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking thiserror v1.0.29
[INFO] [stderr]     Checking naga v0.6.3
[INFO] [stderr]     Checking rotsprite v0.1.3
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking wgpu-hal v0.10.7
[INFO] [stderr]     Checking imgui v0.7.0
[INFO] [stderr]     Checking wgpu v0.10.2
[INFO] [stderr]     Checking pixels v0.6.0
[INFO] [stderr]     Checking imgui-wgpu v0.17.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking game-loop v0.8.0
[INFO] [stderr]     Checking imgui-winit-support v0.7.1
[INFO] [stderr]     Checking winit_input_helper v0.10.0
[INFO] [stderr]     Checking project_blueberry v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[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::time::Instant`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `VirtualKeyCode`, and `WindowEvent`
[INFO] [stdout]  --> src/main.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use game_loop::winit::event::{Event, VirtualKeyCode, WindowEvent};
[INFO] [stdout]   |                               ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/main.rs:8:36
[INFO] [stdout]   |
[INFO] [stdout] 8 | use game_loop::winit::event_loop::{ControlFlow, EventLoop};
[INFO] [stdout]   |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PhysicalSize`
[INFO] [stdout]   --> src/main.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use winit::dpi::{LogicalSize, PhysicalSize};
[INFO] [stdout]    |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Window`
[INFO] [stdout]   --> src/main.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | use winit::window::{Window, WindowBuilder};
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AnimationComponent`
[INFO] [stdout]   --> src/main.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::animation::{Animation, AnimationComponent};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer`
[INFO] [stdout]   --> src/main.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::buffer::{Buffer, BufferAtlas};
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::color::Color`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::color::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageBuffer`
[INFO] [stdout]   --> src/main.rs:22:38
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::image_buffer::{CamBuffer, ImageBuffer, SingleImageBuffer};
[INFO] [stdout]    |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2i`
[INFO] [stdout]   --> src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::math::{Vec2, Vec2i};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/buffer.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufWriter`
[INFO] [stdout]  --> src/buffer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::BufWriter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2u`
[INFO] [stdout]  --> src/buffer.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::math::{Vec2i, Vec2, Vec2u};
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add` and `Deref`
[INFO] [stdout]  --> src/math.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Deref};
[INFO] [stdout]   |                ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::Transform`
[INFO] [stdout]  --> src/game.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::math::Transform;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Component`
[INFO] [stdout]  --> src/game.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::Component;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/game.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Empty`
[INFO] [stdout]   --> src/game.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::io::Empty;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DragRange`, `Drag`, `ImGuiInputTextFlags`, `ImStr`, and `Ui`
[INFO] [stdout]  --> src/imgui.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...::{ImStr, Ui, Window, Condition, im_str, CollapsingHeader, WindowFlags, PlotLines, TreeNode, InputInt2, ImGuiInputTextFlags, Drag, DragRange};
[INFO] [stdout]   |       ^^^^^  ^^                                                                                            ^^^^^^^^^^^^^^^^^^^  ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `winit::event::VirtualKeyCode::W`
[INFO] [stdout]  --> src/imgui.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::VirtualKeyCode::W;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/imgui.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> src/input.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FrameInfo`
[INFO] [stdout]  --> src/input.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{FrameInfo};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/image_buffer.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InputInt` and `Slider`
[INFO] [stdout]  --> src/comps/transform.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use imgui::{Ui, Slider, im_str, InputInt2, InputInt, InputFloat};
[INFO] [stdout]   |                 ^^^^^^                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/comps/object.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[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::time::Instant`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `VirtualKeyCode`, and `WindowEvent`
[INFO] [stdout]  --> src/main.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use game_loop::winit::event::{Event, VirtualKeyCode, WindowEvent};
[INFO] [stdout]   |                               ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/main.rs:8:36
[INFO] [stdout]   |
[INFO] [stdout] 8 | use game_loop::winit::event_loop::{ControlFlow, EventLoop};
[INFO] [stdout]   |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PhysicalSize`
[INFO] [stdout]   --> src/main.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | use winit::dpi::{LogicalSize, PhysicalSize};
[INFO] [stdout]    |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Window`
[INFO] [stdout]   --> src/main.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | use winit::window::{Window, WindowBuilder};
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AnimationComponent`
[INFO] [stdout]   --> src/main.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::animation::{Animation, AnimationComponent};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buffer`
[INFO] [stdout]   --> src/main.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::buffer::{Buffer, BufferAtlas};
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::color::Color`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::color::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageBuffer`
[INFO] [stdout]   --> src/main.rs:22:38
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::image_buffer::{CamBuffer, ImageBuffer, SingleImageBuffer};
[INFO] [stdout]    |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2i`
[INFO] [stdout]   --> src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::math::{Vec2, Vec2i};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/buffer.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufWriter`
[INFO] [stdout]  --> src/buffer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::BufWriter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2u`
[INFO] [stdout]  --> src/buffer.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::math::{Vec2i, Vec2, Vec2u};
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add` and `Deref`
[INFO] [stdout]  --> src/math.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Deref};
[INFO] [stdout]   |                ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::Transform`
[INFO] [stdout]  --> src/game.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::math::Transform;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Component`
[INFO] [stdout]  --> src/game.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::Component;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/game.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Empty`
[INFO] [stdout]   --> src/game.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::io::Empty;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DragRange`, `Drag`, `ImGuiInputTextFlags`, `ImStr`, and `Ui`
[INFO] [stdout]  --> src/imgui.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...::{ImStr, Ui, Window, Condition, im_str, CollapsingHeader, WindowFlags, PlotLines, TreeNode, InputInt2, ImGuiInputTextFlags, Drag, DragRange};
[INFO] [stdout]   |       ^^^^^  ^^                                                                                            ^^^^^^^^^^^^^^^^^^^  ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `winit::event::VirtualKeyCode::W`
[INFO] [stdout]  --> src/imgui.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::VirtualKeyCode::W;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/imgui.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> src/input.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::{Hash, Hasher};
[INFO] [stdout]   |                 ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FrameInfo`
[INFO] [stdout]  --> src/input.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{FrameInfo};
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/image_buffer.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InputInt` and `Slider`
[INFO] [stdout]  --> src/comps/transform.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use imgui::{Ui, Slider, im_str, InputInt2, InputInt, InputFloat};
[INFO] [stdout]   |                 ^^^^^^                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::buffer::Buffer`
[INFO] [stdout]  --> src/comps/object.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn set_from(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn set_from(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:34:36
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:45:36
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn dot(&self, other : &Vec2<T>) -> T {
[INFO] [stdout]    |                            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn dot(&self, other : &dyn Vec2<T>) -> T {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn set_from(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn set_from(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:34:36
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:45:36
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &dyn Vec2<T>) {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/math.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn dot(&self, other : &Vec2<T>) -> T {
[INFO] [stdout]    |                            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn dot(&self, other : &dyn Vec2<T>) -> T {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `winit::event::WindowEvent::CursorMoved::modifiers`: Deprecated in favor of WindowEvent::ModifiersChanged
[INFO] [stdout]   --> src/game.rs:87:69
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `winit::event::WindowEvent::MouseInput::modifiers`: Deprecated in favor of WindowEvent::ModifiersChanged
[INFO] [stdout]   --> src/game.rs:95:73
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `winit::event::WindowEvent::CursorMoved::modifiers`: Deprecated in favor of WindowEvent::ModifiersChanged
[INFO] [stdout]   --> src/game.rs:87:69
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `winit::event::WindowEvent::MouseInput::modifiers`: Deprecated in favor of WindowEvent::ModifiersChanged
[INFO] [stdout]   --> src/game.rs:95:73
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]   --> src/main.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::math::{Vec2, Vec2i};
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]   --> src/main.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::math::{Vec2, Vec2i};
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut gs = &mut self.gs;
[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/game.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Event::WindowEvent { window_id, event } => {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: try ignoring the field: `window_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: `device_id`
[INFO] [stdout]   --> src/game.rs:81:50
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     WindowEvent::KeyboardInput { device_id, input, is_synthetic } => {
[INFO] [stdout]    |                                                  ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_synthetic`
[INFO] [stdout]   --> src/game.rs:81:68
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     WindowEvent::KeyboardInput { device_id, input, is_synthetic } => {
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^ help: try ignoring the field: `is_synthetic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/game.rs:87:48
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/game.rs:87:69
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                                     ^^^^^^^^^ help: try ignoring the field: `modifiers: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/game.rs:95:47
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/game.rs:95:73
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                                                         ^^^^^^^^^ help: try ignoring the field: `modifiers: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]    --> src/game.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |             Event::RedrawRequested(window) => {}
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:153:14
[INFO] [stdout]     |
[INFO] [stdout] 153 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:159:14
[INFO] [stdout]     |
[INFO] [stdout] 159 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut gs = &mut self.gs;
[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/game.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Event::WindowEvent { window_id, event } => {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: try ignoring the field: `window_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: `device_id`
[INFO] [stdout]   --> src/game.rs:81:50
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     WindowEvent::KeyboardInput { device_id, input, is_synthetic } => {
[INFO] [stdout]    |                                                  ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_synthetic`
[INFO] [stdout]   --> src/game.rs:81:68
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     WindowEvent::KeyboardInput { device_id, input, is_synthetic } => {
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^ help: try ignoring the field: `is_synthetic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/game.rs:87:48
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/game.rs:87:69
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]    |                                                                     ^^^^^^^^^ help: try ignoring the field: `modifiers: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/game.rs:95:47
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: try ignoring the field: `device_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/game.rs:95:73
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]    |                                                                         ^^^^^^^^^ help: try ignoring the field: `modifiers: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]    --> src/game.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |             Event::RedrawRequested(window) => {}
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:153:14
[INFO] [stdout]     |
[INFO] [stdout] 153 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/game.rs:159:14
[INFO] [stdout]     |
[INFO] [stdout] 159 |         for (name, i) in self.gameobjects.iter_mut() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/imgui.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut deltas = &mut self.deltas;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mb`
[INFO] [stdout]   --> src/input.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn get_mouse_clicked(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_mb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/animation.rs:64:50
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_buffer`
[INFO] [stdout]   --> src/animation.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn render(&mut self, main_buffer: &mut CamBuffer) {
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/animation.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (x, y) = self.transform.get_xy();
[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/animation.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (x, y) = self.transform.get_xy();
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image_buffer.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut buffer = self.get_buffer_mut();
[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/image_buffer.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut buffer = self.get_buffer_mut();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/color.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let a = alpha_a + alpha_b * (1.0 - alpha_a);
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/comps/draw.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn on_attach(&mut self, obj: &mut GameObject) -> bool {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_info`
[INFO] [stdout]   --> src/comps/draw.rs:34:26
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/comps/draw.rs:34:50
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/imgui.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut deltas = &mut self.deltas;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mb`
[INFO] [stdout]   --> src/input.rs:81:37
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn get_mouse_clicked(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_mb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/animation.rs:64:50
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_buffer`
[INFO] [stdout]   --> src/animation.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn render(&mut self, main_buffer: &mut CamBuffer) {
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/animation.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (x, y) = self.transform.get_xy();
[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/animation.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (x, y) = self.transform.get_xy();
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image_buffer.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut buffer = self.get_buffer_mut();
[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/image_buffer.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut buffer = self.get_buffer_mut();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/comps/object.rs:75:29
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn on_attach(&mut self, obj : &mut GameObject) -> bool {true}
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_buffer`
[INFO] [stdout]   --> src/comps/object.rs:76:26
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn render(&mut self, main_buffer : &mut CamBuffer) {}
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_info`
[INFO] [stdout]   --> src/comps/object.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn update(&mut self, frame_info: &FrameInfo, input_info : &InputInfo) {}
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/comps/object.rs:77:50
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn update(&mut self, frame_info: &FrameInfo, input_info : &InputInfo) {}
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/comps/object.rs:78:32
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn object_debug(&mut self, ui : &Ui) {}
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut pixels = {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut imgui = Gui::new(&window, &pixels);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut ib = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut ib2 = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let mut go = go!("test_1"| ImageBufferRenderComponent::new(ib));
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `anim`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let anim = Animation::new(buffer_atlas, 0.25);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_anim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ib2`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut ib2 = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ib2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `height` and `offset` are never read
[INFO] [stdout]   --> src/buffer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Buffer {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 19 |     width : u32,
[INFO] [stdout] 20 |     height : u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     offset : Vec2i,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Buffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BufferProvider` is never used
[INFO] [stdout]   --> src/buffer.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait BufferProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/buffer.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl Buffer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn from(buffer : Vec<u8>, width : u32, height : u32) -> Buffer {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn from_png(filepath : &str) -> Buffer {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn contains(&self, x : i32, y : i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn blend_pixel(&mut self, x : u32, y : u32, r : u8, g : u8, b : u8, a : u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn get_pixel(&self, x : u32, y : u32) -> (u8, u8, u8, u8) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_offset(&mut self, x : i32, y : i32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_offset(&self) -> &Vec2i {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn blit(&self, other: &mut Buffer, x : i32, y : i32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn dump(&self, arr : &mut [u8]) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture_width` and `texture_height` are never read
[INFO] [stdout]    --> src/buffer.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct BufferAtlas {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 188 |     texture_width : u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 189 |     texture_height : u32
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `slice` and `get_buffer` are never used
[INFO] [stdout]    --> src/buffer.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl BufferAtlas {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn slice(&mut self, width : u32, height : u32) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn get_buffer(&self, index : usize) -> &Buffer {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_vec`, `add`, `sub_vec`, `sub`, and `dot` are never used
[INFO] [stdout]   --> src/math.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait Vec2<T: Num> {
[INFO] [stdout]    |           ---- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn add(&mut self, ox : T, oy : T) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn sub(&mut self, ox : T, oy : T) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn dot(&self, other : &Vec2<T>) -> T {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transform` is never constructed
[INFO] [stdout]    --> src/math.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct Transform {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from` and `setParent` are never used
[INFO] [stdout]    --> src/math.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl Transform {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 176 |     pub fn from(x : i32, y : i32) -> Transform {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn setParent(&mut self, parent : Box<Transform>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformComponent` is never constructed
[INFO] [stdout]    --> src/math.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub struct TransformComponent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_transform` are never used
[INFO] [stdout]    --> src/math.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl TransformComponent {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 217 |     pub fn new() -> TransformComponent {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn get_transform(&self) -> &Transform {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]    --> src/game.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn debug(&mut self, ui : &Ui ) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/color.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let a = alpha_a + alpha_b * (1.0 - alpha_a);
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/comps/draw.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn on_attach(&mut self, obj: &mut GameObject) -> bool {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_info`
[INFO] [stdout]   --> src/comps/draw.rs:34:26
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/input.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl InputInfo {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_mouse_pos(&self) -> &Vec2f {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_mouse_pixel_pos(&self) -> &Vec2u {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn get_mouse_delta(&self) -> Vec2f {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn get_mouse_pixel_delta(&self) -> Vec2i {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn get_key(&self, code : VirtualKeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_mouse_button(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn get_mouse_clicked(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/input.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct MouseButtonInfo {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 91 |     state : bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale_factor` is never read
[INFO] [stdout]  --> src/window.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WindowInfo {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 4 |     pub scale_factor : f64
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/comps/draw.rs:34:50
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn update(&mut self, frame_info: &FrameInfo, input_info: &InputInfo) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer_atlas`, `current_frame`, `total_frames`, `fps`, and `elapsed_time` are never read
[INFO] [stdout]   --> src/animation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Animation {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     buffer_atlas: BufferAtlas,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 12 |     current_frame : u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     total_frames : u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     fps : f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     elapsed_time : f64
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_frame`, `update`, and `increment_frame` are never used
[INFO] [stdout]   --> src/animation.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Animation {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn get_frame(&self) -> &Buffer {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn update(&mut self, delta : f64) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn increment_frame(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnimationComponent` is never constructed
[INFO] [stdout]   --> src/animation.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct AnimationComponent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/animation.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl AnimationComponent {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 55 |     pub fn new(animation : Animation) -> AnimationComponent {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rotate`, `scale`, and `scale_safe` are never used
[INFO] [stdout]   --> src/image_buffer.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait ImageBuffer {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn rotate(&mut self, angle: f64) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn scale(&mut self, scale : f64) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn scale_safe(&mut self, scale : f64, mut ib : SingleImageBuffer) -> SingleImageBuffer {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtlasImageBuffer` is never constructed
[INFO] [stdout]    --> src/image_buffer.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct AtlasImageBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]  --> src/comps/transform.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TransformComponent {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 7 |     pub pos: Vec2i,
[INFO] [stdout] 8 |     pub scale: Vec2f,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/comps/transform.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl TransformComponent {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> TransformComponent {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/comps/draw.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ImageBufferRenderComponent<T: ImageBuffer> {
[INFO] [stdout]    |            -------------------------- field in this struct
[INFO] [stdout]  9 |     buffer : T,
[INFO] [stdout] 10 |     transform: Option<Box<TransformComponent>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_comp` and `get_comp_or_panic` are never used
[INFO] [stdout]   --> src/comps/object.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GameObject {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_comp<T>(&self) -> Option<&T> where T: 'static + GameComponent {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_comp_or_panic<T>(&self) -> &T where T: 'static + GameComponent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `priority` is never used
[INFO] [stdout]   --> src/comps/object.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub trait GameComponent {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn priority(&self) -> u32 {u32::MAX}
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setParent` should have a snake case name
[INFO] [stdout]    --> src/math.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn setParent(&mut self, parent : Box<Transform>) {
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to snake case: `set_parent`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/comps/object.rs:75:29
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn on_attach(&mut self, obj : &mut GameObject) -> bool {true}
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_buffer`
[INFO] [stdout]   --> src/comps/object.rs:76:26
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn render(&mut self, main_buffer : &mut CamBuffer) {}
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_info`
[INFO] [stdout]   --> src/comps/object.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn update(&mut self, frame_info: &FrameInfo, input_info : &InputInfo) {}
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_info`
[INFO] [stdout]   --> src/comps/object.rs:77:50
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn update(&mut self, frame_info: &FrameInfo, input_info : &InputInfo) {}
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/comps/object.rs:78:32
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn object_debug(&mut self, ui : &Ui) {}
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         self.imgui.prepare(window);
[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] 38 |         let _ = self.imgui.prepare(window);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |             imgui.render(&window, encoder, render_target, context, gs, frame_info.update_delta, window_info, main_bufer);
[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] 51 |             let _ = imgui.render(&window, encoder, render_target, context, gs, frame_info.update_delta, window_info, main_bufer);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `onResize` should have a snake case name
[INFO] [stdout]    --> src/game.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn onResize(&mut self, size : PhysicalSize<u32>) {
[INFO] [stdout]     |        ^^^^^^^^ help: convert the identifier to snake case: `on_resize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `onCloseRequested` should have a snake case name
[INFO] [stdout]    --> src/game.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn onCloseRequested(&mut self) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `on_close_requested`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputInt2` that must be used
[INFO] [stdout]    --> src/imgui.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 InputInt2::new(&ui, im_str!("Cam pos"), &mut cam_pos);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 let _ = InputInt2::new(&ui, im_str!("Cam pos"), &mut cam_pos);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputInt2` that must be used
[INFO] [stdout]   --> src/comps/transform.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         InputInt2::new(&ui, im_str!("Pos"), &mut pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let _ = InputInt2::new(&ui, im_str!("Pos"), &mut pos);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputFloat` that must be used
[INFO] [stdout]   --> src/comps/transform.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         InputFloat::new(&ui, im_str!("Rotation"), &mut (self.rotation as f32));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let _ = InputFloat::new(&ui, im_str!("Rotation"), &mut (self.rotation as f32));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut pixels = {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut imgui = Gui::new(&window, &pixels);
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut ib = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut ib2 = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let mut go = go!("test_1"| ImageBufferRenderComponent::new(ib));
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `anim`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let anim = Animation::new(buffer_atlas, 0.25);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_anim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ib2`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut ib2 = SingleImageBuffer::from("gear.png");
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ib2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `height` and `offset` are never read
[INFO] [stdout]   --> src/buffer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Buffer {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 19 |     width : u32,
[INFO] [stdout] 20 |     height : u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     offset : Vec2i,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Buffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BufferProvider` is never used
[INFO] [stdout]   --> src/buffer.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait BufferProvider {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/buffer.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl Buffer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn from(buffer : Vec<u8>, width : u32, height : u32) -> Buffer {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn from_png(filepath : &str) -> Buffer {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn contains(&self, x : i32, y : i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn blend_pixel(&mut self, x : u32, y : u32, r : u8, g : u8, b : u8, a : u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn get_pixel(&self, x : u32, y : u32) -> (u8, u8, u8, u8) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_offset(&mut self, x : i32, y : i32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_offset(&self) -> &Vec2i {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn blit(&self, other: &mut Buffer, x : i32, y : i32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn dump(&self, arr : &mut [u8]) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture_width` and `texture_height` are never read
[INFO] [stdout]    --> src/buffer.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct BufferAtlas {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 188 |     texture_width : u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 189 |     texture_height : u32
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `slice` and `get_buffer` are never used
[INFO] [stdout]    --> src/buffer.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl BufferAtlas {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn slice(&mut self, width : u32, height : u32) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn get_buffer(&self, index : usize) -> &Buffer {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_vec`, `add`, `sub_vec`, `sub`, and `dot` are never used
[INFO] [stdout]   --> src/math.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait Vec2<T: Num> {
[INFO] [stdout]    |           ---- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn add_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn add(&mut self, ox : T, oy : T) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn sub_vec(&mut self, other : &Vec2<T>) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn sub(&mut self, ox : T, oy : T) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn dot(&self, other : &Vec2<T>) -> T {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transform` is never constructed
[INFO] [stdout]    --> src/math.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct Transform {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from` and `setParent` are never used
[INFO] [stdout]    --> src/math.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl Transform {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 176 |     pub fn from(x : i32, y : i32) -> Transform {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn setParent(&mut self, parent : Box<Transform>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformComponent` is never constructed
[INFO] [stdout]    --> src/math.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub struct TransformComponent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_transform` are never used
[INFO] [stdout]    --> src/math.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl TransformComponent {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 217 |     pub fn new() -> TransformComponent {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn get_transform(&self) -> &Transform {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]    --> src/game.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn debug(&mut self, ui : &Ui ) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/input.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl InputInfo {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_mouse_pos(&self) -> &Vec2f {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn get_mouse_pixel_pos(&self) -> &Vec2u {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn get_mouse_delta(&self) -> Vec2f {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn get_mouse_pixel_delta(&self) -> Vec2i {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn get_key(&self, code : VirtualKeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_mouse_button(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn get_mouse_clicked(&self, mb : MouseButton) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/input.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct MouseButtonInfo {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 91 |     state : bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale_factor` is never read
[INFO] [stdout]  --> src/window.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WindowInfo {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 4 |     pub scale_factor : f64
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer_atlas`, `current_frame`, `total_frames`, `fps`, and `elapsed_time` are never read
[INFO] [stdout]   --> src/animation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Animation {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 11 |     buffer_atlas: BufferAtlas,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 12 |     current_frame : u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     total_frames : u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     fps : f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     elapsed_time : f64
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_frame`, `update`, and `increment_frame` are never used
[INFO] [stdout]   --> src/animation.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Animation {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn get_frame(&self) -> &Buffer {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn update(&mut self, delta : f64) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn increment_frame(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnimationComponent` is never constructed
[INFO] [stdout]   --> src/animation.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct AnimationComponent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/animation.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl AnimationComponent {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 55 |     pub fn new(animation : Animation) -> AnimationComponent {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rotate`, `scale`, and `scale_safe` are never used
[INFO] [stdout]   --> src/image_buffer.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait ImageBuffer {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn rotate(&mut self, angle: f64) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn scale(&mut self, scale : f64) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn scale_safe(&mut self, scale : f64, mut ib : SingleImageBuffer) -> SingleImageBuffer {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtlasImageBuffer` is never constructed
[INFO] [stdout]    --> src/image_buffer.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct AtlasImageBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]  --> src/comps/transform.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TransformComponent {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 7 |     pub pos: Vec2i,
[INFO] [stdout] 8 |     pub scale: Vec2f,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/comps/transform.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl TransformComponent {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> TransformComponent {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transform` is never read
[INFO] [stdout]   --> src/comps/draw.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ImageBufferRenderComponent<T: ImageBuffer> {
[INFO] [stdout]    |            -------------------------- field in this struct
[INFO] [stdout]  9 |     buffer : T,
[INFO] [stdout] 10 |     transform: Option<Box<TransformComponent>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_comp` and `get_comp_or_panic` are never used
[INFO] [stdout]   --> src/comps/object.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GameObject {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_comp<T>(&self) -> Option<&T> where T: 'static + GameComponent {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_comp_or_panic<T>(&self) -> &T where T: 'static + GameComponent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `priority` is never used
[INFO] [stdout]   --> src/comps/object.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub trait GameComponent {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn priority(&self) -> u32 {u32::MAX}
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setParent` should have a snake case name
[INFO] [stdout]    --> src/math.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn setParent(&mut self, parent : Box<Transform>) {
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to snake case: `set_parent`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         self.imgui.prepare(window);
[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] 38 |         let _ = self.imgui.prepare(window);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |             imgui.render(&window, encoder, render_target, context, gs, frame_info.update_delta, window_info, main_bufer);
[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] 51 |             let _ = imgui.render(&window, encoder, render_target, context, gs, frame_info.update_delta, window_info, main_bufer);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `onResize` should have a snake case name
[INFO] [stdout]    --> src/game.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn onResize(&mut self, size : PhysicalSize<u32>) {
[INFO] [stdout]     |        ^^^^^^^^ help: convert the identifier to snake case: `on_resize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `onCloseRequested` should have a snake case name
[INFO] [stdout]    --> src/game.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn onCloseRequested(&mut self) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `on_close_requested`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputInt2` that must be used
[INFO] [stdout]    --> src/imgui.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 InputInt2::new(&ui, im_str!("Cam pos"), &mut cam_pos);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 let _ = InputInt2::new(&ui, im_str!("Cam pos"), &mut cam_pos);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputInt2` that must be used
[INFO] [stdout]   --> src/comps/transform.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         InputInt2::new(&ui, im_str!("Pos"), &mut pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let _ = InputInt2::new(&ui, im_str!("Pos"), &mut pos);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `InputFloat` that must be used
[INFO] [stdout]   --> src/comps/transform.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         InputFloat::new(&ui, im_str!("Rotation"), &mut (self.rotation as f32));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let _ = InputFloat::new(&ui, im_str!("Rotation"), &mut (self.rotation as f32));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 55.57s
[INFO] running `Command { std: "docker" "inspect" "44361e4203411c7f1129326f09eb753f2ac4cbb0beb695343793428c5aef684b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44361e4203411c7f1129326f09eb753f2ac4cbb0beb695343793428c5aef684b", kill_on_drop: false }`
[INFO] [stdout] 44361e4203411c7f1129326f09eb753f2ac4cbb0beb695343793428c5aef684b
