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