[INFO] cloning repository https://github.com/bishan-batel/rust-opengl-template
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bishan-batel/rust-opengl-template" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbishan-batel%2Frust-opengl-template", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbishan-batel%2Frust-opengl-template'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 01666805246ba52eabba7226b3ba603d44a81f23
[INFO] checking bishan-batel/rust-opengl-template against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbishan-batel%2Frust-opengl-template" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bishan-batel/rust-opengl-template
[INFO] finished tweaking git repo https://github.com/bishan-batel/rust-opengl-template
[INFO] tweaked toml for git repo https://github.com/bishan-batel/rust-opengl-template written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bishan-batel/rust-opengl-template on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bishan-batel/rust-opengl-template already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rayon-core v1.10.2
[INFO] [stderr]   Downloaded nalgebra-glm v0.18.0
[INFO] [stderr]   Downloaded zune-inflate v0.2.50
[INFO] [stderr]   Downloaded wide v0.7.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d2484d5963428c26989b3bd325612d022d39cbfbccabe8731e80c3a9fa83946
[INFO] running `Command { std: "docker" "start" "-a" "6d2484d5963428c26989b3bd325612d022d39cbfbccabe8731e80c3a9fa83946", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d2484d5963428c26989b3bd325612d022d39cbfbccabe8731e80c3a9fa83946", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d2484d5963428c26989b3bd325612d022d39cbfbccabe8731e80c3a9fa83946", kill_on_drop: false }`
[INFO] [stdout] 6d2484d5963428c26989b3bd325612d022d39cbfbccabe8731e80c3a9fa83946
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3cf02588022215fb5d194a80f28839b32181b9a78857dc9d16b1173165796928
[INFO] running `Command { std: "docker" "start" "-a" "3cf02588022215fb5d194a80f28839b32181b9a78857dc9d16b1173165796928", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling crossbeam-utils v0.8.14
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.51
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.13
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling rayon-core v1.10.2
[INFO] [stderr]     Checking bytemuck v1.13.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]    Compiling futures-core v0.3.26
[INFO] [stderr]    Compiling paste v1.0.11
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-complex v0.4.3
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking simd-adler32 v0.3.4
[INFO] [stderr]     Checking safe_arch v0.6.0
[INFO] [stderr]     Checking futures-sink v0.3.26
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking matrixmultiply v0.3.2
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking zune-inflate v0.2.50
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]     Checking spin v0.9.5
[INFO] [stderr]     Checking flate2 v1.0.25
[INFO] [stderr]     Checking wide v0.7.8
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking png v0.17.7
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking rayon v1.6.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking simba v0.8.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking tiff v0.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking exr v1.5.3
[INFO] [stderr]     Checking nalgebra v0.32.1
[INFO] [stderr]     Checking image v0.24.5
[INFO] [stderr]     Checking nalgebra-glm v0.18.0
[INFO] [stderr]     Checking compute-particles v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/game.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts`
[INFO] [stdout]  --> src/game.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::size_of`
[INFO] [stdout]  --> src/game.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::size_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/game.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/game.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GLint`, `GLsizei`, `GLsizeiptr`, `GLuint`, and `GLvoid`
[INFO] [stdout]  --> src/game.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use gl::types::{GLint, GLsizei, GLsizeiptr, GLuint, GLvoid};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::DynamicImage::ImageRgba32F`
[INFO] [stdout]  --> src/game.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use image::DynamicImage::ImageRgba32F;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncodableLayout`, `GenericImageView`, and `Rgba32FImage`
[INFO] [stdout]  --> src/game.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use image::{EncodableLayout, GenericImageView, Rgba32FImage};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::imageops::FilterType`
[INFO] [stdout]   --> src/game.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use image::imageops::FilterType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/game.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::mouse::MouseWheelDirection`
[INFO] [stdout]   --> src/game.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use sdl2::mouse::MouseWheelDirection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::sys::rand`
[INFO] [stdout]   --> src/game.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use sdl2::sys::rand;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColorInternal` and `ColorRepr`
[INFO] [stdout]   --> src/game.rs:19:28
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::render::color::{ColorInternal, ColorRepr};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::render::GlDataType`
[INFO] [stdout]   --> src/game.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::render::GlDataType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComputeProgram`, `Program`, and `Shader`
[INFO] [stdout]   --> src/game.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::render::shader::{ComputeProgram, Program, Shader};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageAccess`, `TextureTarget`, and `Texture`
[INFO] [stdout]   --> src/game.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::render::texture::{ImageAccess, Texture, TextureTarget};
[INFO] [stdout]    |                              ^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttributeLayout` and `VertexArrayObject`
[INFO] [stdout]   --> src/game.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::render::vertex_arrays::{AttributeLayout, VertexArrayObject};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferObject`, `BufferType`, and `BufferUsage`
[INFO] [stdout]   --> src/game.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::render::buffer::{BufferObject, BufferType, BufferUsage};
[INFO] [stdout]    |                             ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CStr`
[INFO] [stdout]  --> src/render/shader.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::{CStr, CString};
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mem` and `ptr`
[INFO] [stdout]  --> src/render/buffer.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{mem, ptr, slice};
[INFO] [stdout]   |           ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GLvoid`
[INFO] [stdout]  --> src/render/buffer.rs:4:64
[INFO] [stdout]   |
[INFO] [stdout] 4 | use gl::types::{GLenum, GLintptr, GLsizei, GLsizeiptr, GLuint, GLvoid};
[INFO] [stdout]   |                                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ComputeProgram`
[INFO] [stdout]  --> src/state.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::render::shader::{ComputeProgram, Program, Shader};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::render::texture::Texture`
[INFO] [stdout]  --> src/state.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::render::texture::Texture;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:125:37
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub unsafe fn render(&mut self, mut delta: f64) {
[INFO] [stdout]     |                                     ----^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render/buffer.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut buff = Self::gen(1, kind);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/render/buffer.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/state.rs:86:36
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn handle_event(&mut self, event: Event) -> bool {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]   --> src/state.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn update(&mut self, game: &mut Game, delta: f64) {}
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]   --> src/state.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn update(&mut self, game: &mut Game, delta: f64) {}
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]   --> src/state.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn render(&mut self, game: &mut Game, delta: f64) {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]   --> src/state.rs:92:47
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn render(&mut self, game: &mut Game, delta: f64) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARTICLE_COUNT` is never used
[INFO] [stdout]   --> src/game.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const PARTICLE_COUNT: usize = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sdl`, `video_subsystem`, and `gl_context` are never read
[INFO] [stdout]   --> src/game.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Game {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 30 |     sdl: Sdl,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 31 |     video_subsystem: VideoSubsystem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     gl_context: GLContext,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resize_window` and `is_key_down` are never used
[INFO] [stdout]    --> src/game.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Game {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn resize_window(&mut self, size: (i32, i32)) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn is_key_down(&self, key: Scancode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/render/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum GlDataType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 12 |     Byte = gl::BYTE,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     UnsignedByte = gl::UNSIGNED_BYTE,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     Short = gl::SHORT,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     UnsignedShort = gl::UNSIGNED_SHORT,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     Int = gl::INT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 17 |     UnsignedInt = gl::UNSIGNED_INT,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     Fixed = gl::FIXED,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     Half = gl::HALF_FLOAT,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     Float = gl::FLOAT,
[INFO] [stdout] 21 |     Double = gl::DOUBLE,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlDataType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Compute` and `Geometry` are never constructed
[INFO] [stdout]   --> src/render/shader.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ShaderType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Compute = gl::COMPUTE_SHADER,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 11 |     Geometry = gl::GEOMETRY_SHADER,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_int`, `set_float`, `set_vec3`, and `id` are never used
[INFO] [stdout]    --> src/render/shader.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Program {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn set_int(&mut self, name: &str, val: i32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn set_float(&mut self, name: &str, val: f32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn set_vec3(&mut self, name: &str, val: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub const fn id(&self) -> GLuint {
[INFO] [stdout]     |                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComputeProgram` is never constructed
[INFO] [stdout]    --> src/render/shader.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct ComputeProgram {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_source`, `execute`, `set_used`, `get_program`, and `get_program_mut` are never used
[INFO] [stdout]    --> src/render/shader.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl ComputeProgram {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 193 |     pub fn from_source(src: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn execute(&self, x: u32, y: u32, z: u32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn set_used(&self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub const fn get_program(&self) -> &Program {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_program_mut(&mut self) -> &mut Program {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/render/vertex_arrays.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AttributeLayout {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 18 |     pub fn number_normalized(&mut self, kind: GlDataType) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn vector_normalized(&mut self, kind: GlDataType, size: usize) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn number(&mut self, kind: GlDataType) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn float(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn int(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn uint(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn vec2(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn vec3(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn vec4(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `read_slice`, `read_write_slice`, `copy_all_to`, `copy_to`, and `bind_base` are never used
[INFO] [stdout]    --> src/render/buffer.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl<T> BufferObject<T> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub fn with_capacity(kind: BufferType, size: usize, usage: BufferUsage) -> Self where T: Sized {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn read_slice(&mut self, reader: fn(&[T])) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn read_write_slice(&mut self, reader: fn(&mut [T])) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn copy_all_to(&self, dest: &mut BufferObject<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn copy_to(&self, dest: &mut BufferObject<T>, read_offset: usize, write_offset: usize, length: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn bind_base(&self, layout: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ShaderStorage` is never constructed
[INFO] [stdout]    --> src/render/buffer.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub enum BufferType {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 137 |     ShaderStorage = gl::SHADER_STORAGE_BUFFER,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/render/buffer.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum BufferUsage {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 144 |     StreamDraw = gl::STREAM_DRAW,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 145 |     StreamRead = gl::STREAM_READ,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 146 |     StreamCopy = gl::STREAM_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 147 |     StaticDraw = gl::STATIC_DRAW,
[INFO] [stdout] 148 |     StaticRead = gl::STATIC_READ,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 149 |     StaticCopy = gl::STATIC_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 150 |     DynamicDraw = gl::DYNAMIC_DRAW,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 151 |     DynamicRead = gl::DYNAMIC_READ,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 152 |     DynamicCopy = gl::DYNAMIC_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferUsage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TextureTarget` is never used
[INFO] [stdout]  --> src/render/texture.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum TextureTarget {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ImageAccess` is never used
[INFO] [stdout]   --> src/render/texture.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum ImageAccess {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Texture` is never constructed
[INFO] [stdout]   --> src/render/texture.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Texture {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/render/texture.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Texture {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  35 |     pub fn fill_image_2d<T>(&self, internal_format: ColorInternal, format: ColorRepr, width: u32, height: u32, pixel_data_type: GlD...
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn generate_mipmap(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn gen(n: usize, target: TextureTarget) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn texture_2d() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn bind_image_texture(&self, format: ColorInternal, access: ImageAccess) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn bind(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn set_active(tex: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColorRepr` is never used
[INFO] [stdout]  --> src/render/color.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum ColorRepr {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColorInternal` is never used
[INFO] [stdout]   --> src/render/color.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum ColorInternal {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/game.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts`
[INFO] [stdout]  --> src/game.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::size_of`
[INFO] [stdout]  --> src/game.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::size_of;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/game.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/game.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GLint`, `GLsizei`, `GLsizeiptr`, `GLuint`, and `GLvoid`
[INFO] [stdout]  --> src/game.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use gl::types::{GLint, GLsizei, GLsizeiptr, GLuint, GLvoid};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::DynamicImage::ImageRgba32F`
[INFO] [stdout]  --> src/game.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use image::DynamicImage::ImageRgba32F;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncodableLayout`, `GenericImageView`, and `Rgba32FImage`
[INFO] [stdout]  --> src/game.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use image::{EncodableLayout, GenericImageView, Rgba32FImage};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::imageops::FilterType`
[INFO] [stdout]   --> src/game.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use image::imageops::FilterType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::thread_rng`
[INFO] [stdout]   --> src/game.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rand::thread_rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::mouse::MouseWheelDirection`
[INFO] [stdout]   --> src/game.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use sdl2::mouse::MouseWheelDirection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::sys::rand`
[INFO] [stdout]   --> src/game.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use sdl2::sys::rand;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColorInternal` and `ColorRepr`
[INFO] [stdout]   --> src/game.rs:19:28
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::render::color::{ColorInternal, ColorRepr};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::render::GlDataType`
[INFO] [stdout]   --> src/game.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::render::GlDataType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComputeProgram`, `Program`, and `Shader`
[INFO] [stdout]   --> src/game.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::render::shader::{ComputeProgram, Program, Shader};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageAccess`, `TextureTarget`, and `Texture`
[INFO] [stdout]   --> src/game.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::render::texture::{ImageAccess, Texture, TextureTarget};
[INFO] [stdout]    |                              ^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttributeLayout` and `VertexArrayObject`
[INFO] [stdout]   --> src/game.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::render::vertex_arrays::{AttributeLayout, VertexArrayObject};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferObject`, `BufferType`, and `BufferUsage`
[INFO] [stdout]   --> src/game.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::render::buffer::{BufferObject, BufferType, BufferUsage};
[INFO] [stdout]    |                             ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CStr`
[INFO] [stdout]  --> src/render/shader.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::{CStr, CString};
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `mem` and `ptr`
[INFO] [stdout]  --> src/render/buffer.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{mem, ptr, slice};
[INFO] [stdout]   |           ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GLvoid`
[INFO] [stdout]  --> src/render/buffer.rs:4:64
[INFO] [stdout]   |
[INFO] [stdout] 4 | use gl::types::{GLenum, GLintptr, GLsizei, GLsizeiptr, GLuint, GLvoid};
[INFO] [stdout]   |                                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ComputeProgram`
[INFO] [stdout]  --> src/state.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::render::shader::{ComputeProgram, Program, Shader};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::render::texture::Texture`
[INFO] [stdout]  --> src/state.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::render::texture::Texture;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:125:37
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub unsafe fn render(&mut self, mut delta: f64) {
[INFO] [stdout]     |                                     ----^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/render/buffer.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut buff = Self::gen(1, kind);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/render/buffer.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/state.rs:86:36
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn handle_event(&mut self, event: Event) -> bool {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]   --> src/state.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn update(&mut self, game: &mut Game, delta: f64) {}
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]   --> src/state.rs:90:47
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn update(&mut self, game: &mut Game, delta: f64) {}
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]   --> src/state.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn render(&mut self, game: &mut Game, delta: f64) {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]   --> src/state.rs:92:47
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn render(&mut self, game: &mut Game, delta: f64) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARTICLE_COUNT` is never used
[INFO] [stdout]   --> src/game.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const PARTICLE_COUNT: usize = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sdl`, `video_subsystem`, and `gl_context` are never read
[INFO] [stdout]   --> src/game.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Game {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 30 |     sdl: Sdl,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 31 |     video_subsystem: VideoSubsystem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     gl_context: GLContext,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resize_window` and `is_key_down` are never used
[INFO] [stdout]    --> src/game.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Game {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn resize_window(&mut self, size: (i32, i32)) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn is_key_down(&self, key: Scancode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/render/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum GlDataType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 12 |     Byte = gl::BYTE,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     UnsignedByte = gl::UNSIGNED_BYTE,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     Short = gl::SHORT,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     UnsignedShort = gl::UNSIGNED_SHORT,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     Int = gl::INT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 17 |     UnsignedInt = gl::UNSIGNED_INT,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     Fixed = gl::FIXED,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     Half = gl::HALF_FLOAT,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     Float = gl::FLOAT,
[INFO] [stdout] 21 |     Double = gl::DOUBLE,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlDataType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Compute` and `Geometry` are never constructed
[INFO] [stdout]   --> src/render/shader.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ShaderType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Compute = gl::COMPUTE_SHADER,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 11 |     Geometry = gl::GEOMETRY_SHADER,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_int`, `set_float`, `set_vec3`, and `id` are never used
[INFO] [stdout]    --> src/render/shader.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Program {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn set_int(&mut self, name: &str, val: i32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn set_float(&mut self, name: &str, val: f32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn set_vec3(&mut self, name: &str, val: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub const fn id(&self) -> GLuint {
[INFO] [stdout]     |                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComputeProgram` is never constructed
[INFO] [stdout]    --> src/render/shader.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct ComputeProgram {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_source`, `execute`, `set_used`, `get_program`, and `get_program_mut` are never used
[INFO] [stdout]    --> src/render/shader.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl ComputeProgram {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 193 |     pub fn from_source(src: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn execute(&self, x: u32, y: u32, z: u32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn set_used(&self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub const fn get_program(&self) -> &Program {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_program_mut(&mut self) -> &mut Program {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/render/vertex_arrays.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AttributeLayout {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 18 |     pub fn number_normalized(&mut self, kind: GlDataType) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn vector_normalized(&mut self, kind: GlDataType, size: usize) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn number(&mut self, kind: GlDataType) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn float(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn int(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn uint(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn vec2(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn vec3(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn vec4(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `read_slice`, `read_write_slice`, `copy_all_to`, `copy_to`, and `bind_base` are never used
[INFO] [stdout]    --> src/render/buffer.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl<T> BufferObject<T> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub fn with_capacity(kind: BufferType, size: usize, usage: BufferUsage) -> Self where T: Sized {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn read_slice(&mut self, reader: fn(&[T])) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn read_write_slice(&mut self, reader: fn(&mut [T])) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn copy_all_to(&self, dest: &mut BufferObject<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn copy_to(&self, dest: &mut BufferObject<T>, read_offset: usize, write_offset: usize, length: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn bind_base(&self, layout: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ShaderStorage` is never constructed
[INFO] [stdout]    --> src/render/buffer.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub enum BufferType {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 137 |     ShaderStorage = gl::SHADER_STORAGE_BUFFER,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/render/buffer.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum BufferUsage {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 144 |     StreamDraw = gl::STREAM_DRAW,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 145 |     StreamRead = gl::STREAM_READ,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 146 |     StreamCopy = gl::STREAM_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 147 |     StaticDraw = gl::STATIC_DRAW,
[INFO] [stdout] 148 |     StaticRead = gl::STATIC_READ,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 149 |     StaticCopy = gl::STATIC_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 150 |     DynamicDraw = gl::DYNAMIC_DRAW,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 151 |     DynamicRead = gl::DYNAMIC_READ,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 152 |     DynamicCopy = gl::DYNAMIC_COPY,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferUsage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TextureTarget` is never used
[INFO] [stdout]  --> src/render/texture.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum TextureTarget {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ImageAccess` is never used
[INFO] [stdout]   --> src/render/texture.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum ImageAccess {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Texture` is never constructed
[INFO] [stdout]   --> src/render/texture.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Texture {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/render/texture.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Texture {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  35 |     pub fn fill_image_2d<T>(&self, internal_format: ColorInternal, format: ColorRepr, width: u32, height: u32, pixel_data_type: GlD...
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn generate_mipmap(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn gen(n: usize, target: TextureTarget) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn texture_2d() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn bind_image_texture(&self, format: ColorInternal, access: ImageAccess) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn bind(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn set_active(tex: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColorRepr` is never used
[INFO] [stdout]  --> src/render/color.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum ColorRepr {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColorInternal` is never used
[INFO] [stdout]   --> src/render/color.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum ColorInternal {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.66s
[INFO] running `Command { std: "docker" "inspect" "3cf02588022215fb5d194a80f28839b32181b9a78857dc9d16b1173165796928", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cf02588022215fb5d194a80f28839b32181b9a78857dc9d16b1173165796928", kill_on_drop: false }`
[INFO] [stdout] 3cf02588022215fb5d194a80f28839b32181b9a78857dc9d16b1173165796928
