[INFO] cloning repository https://github.com/CaioFerrandis/RENG
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CaioFerrandis/RENG" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaioFerrandis%2FRENG", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaioFerrandis%2FRENG'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8f1c43ef22c14c0307b7b38a5df607bbec4d0028
[INFO] building CaioFerrandis/RENG against try#334963c956d25708feab489a3816ae63f639355d for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaioFerrandis%2FRENG" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  49% (1690/3381)
Updating files:  50% (1691/3381)
Updating files:  51% (1725/3381)
Updating files:  52% (1759/3381)
Updating files:  53% (1792/3381)
Updating files:  54% (1826/3381)
Updating files:  55% (1860/3381)
Updating files:  56% (1894/3381)
Updating files:  57% (1928/3381)
Updating files:  58% (1961/3381)
Updating files:  59% (1995/3381)
Updating files:  60% (2029/3381)
Updating files:  61% (2063/3381)
Updating files:  61% (2093/3381)
Updating files:  62% (2097/3381)
Updating files:  63% (2131/3381)
Updating files:  64% (2164/3381)
Updating files:  64% (2193/3381)
Updating files:  65% (2198/3381)
Updating files:  66% (2232/3381)
Updating files:  66% (2259/3381)
Updating files:  67% (2266/3381)
Updating files:  68% (2300/3381)
Updating files:  69% (2333/3381)
Updating files:  70% (2367/3381)
Updating files:  71% (2401/3381)
Updating files:  72% (2435/3381)
Updating files:  73% (2469/3381)
Updating files:  74% (2502/3381)
Updating files:  74% (2530/3381)
Updating files:  75% (2536/3381)
Updating files:  76% (2570/3381)
Updating files:  76% (2603/3381)
Updating files:  77% (2604/3381)
Updating files:  78% (2638/3381)
Updating files:  79% (2671/3381)
Updating files:  80% (2705/3381)
Updating files:  81% (2739/3381)
Updating files:  82% (2773/3381)
Updating files:  83% (2807/3381)
Updating files:  84% (2841/3381)
Updating files:  85% (2874/3381)
Updating files:  86% (2908/3381)
Updating files:  87% (2942/3381)
Updating files:  88% (2976/3381)
Updating files:  89% (3010/3381)
Updating files:  90% (3043/3381)
Updating files:  91% (3077/3381)
Updating files:  92% (3111/3381)
Updating files:  93% (3145/3381)
Updating files:  94% (3179/3381)
Updating files:  95% (3212/3381)
Updating files:  96% (3246/3381)
Updating files:  97% (3280/3381)
Updating files:  98% (3314/3381)
Updating files:  99% (3348/3381)
Updating files:  99% (3378/3381)
Updating files: 100% (3381/3381)
Updating files: 100% (3381/3381), done.
[INFO] validating manifest of git repo https://github.com/CaioFerrandis/RENG on toolchain 334963c956d25708feab489a3816ae63f639355d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/CaioFerrandis/RENG
[INFO] finished tweaking git repo https://github.com/CaioFerrandis/RENG
[INFO] tweaked toml for git repo https://github.com/CaioFerrandis/RENG written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/CaioFerrandis/RENG 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" "+334963c956d25708feab489a3816ae63f639355d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b4f697f11252d1a463116091764f5dda1c6083d398d432cfefa73066528caa9d
[INFO] running `Command { std: "docker" "start" "-a" "b4f697f11252d1a463116091764f5dda1c6083d398d432cfefa73066528caa9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4f697f11252d1a463116091764f5dda1c6083d398d432cfefa73066528caa9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4f697f11252d1a463116091764f5dda1c6083d398d432cfefa73066528caa9d", kill_on_drop: false }`
[INFO] [stdout] b4f697f11252d1a463116091764f5dda1c6083d398d432cfefa73066528caa9d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8dc84dd493df0a8c7903e1e056f0218c8bdefc380aea72080b01e533b335038e
[INFO] running `Command { std: "docker" "start" "-a" "8dc84dd493df0a8c7903e1e056f0218c8bdefc380aea72080b01e533b335038e", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling libc v0.2.164
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling bytemuck v1.18.0
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling once_cell v1.20.0
[INFO] [stderr]    Compiling cc v1.1.18
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling anyhow v1.0.89
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling built v0.7.4
[INFO] [stderr]    Compiling aligned-vec v0.5.0
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling allocator-api2 v0.2.20
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling safe_arch v0.7.2
[INFO] [stderr]    Compiling cmake v0.1.51
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling xml-rs v0.8.22
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling miniz_oxide v0.7.4
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling wide v0.7.30
[INFO] [stderr]    Compiling flate2 v1.0.33
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling bitstream-io v2.5.3
[INFO] [stderr]    Compiling imgui-sys v0.12.0
[INFO] [stderr]    Compiling glfw-sys v5.0.0+3.3.9
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling imgref v1.10.1
[INFO] [stderr]    Compiling weezl v0.1.8
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling robust v1.1.0
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling flume v0.11.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling v_frame v0.3.8
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling ordered-float v4.5.0
[INFO] [stderr]    Compiling rstar v0.12.2
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling rgb v0.8.50
[INFO] [stderr]    Compiling avif-serialize v0.8.1
[INFO] [stderr]    Compiling fdeflate v0.3.4
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling simba v0.9.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling mint v0.5.9
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling rustc-hash v2.0.0
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling chlorine v1.0.12
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling zune-core v0.4.12
[INFO] [stderr]    Compiling exr v1.72.0
[INFO] [stderr]    Compiling png v0.17.13
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]    Compiling gif v0.13.1
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling zune-jpeg v0.4.13
[INFO] [stderr]    Compiling image-webp v0.1.3
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling bit-vec v0.7.0
[INFO] [stderr]    Compiling raw-window-handle v0.6.2
[INFO] [stderr]    Compiling glam v0.29.0
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling glfw v0.58.0
[INFO] [stderr]    Compiling av1-grain v0.2.3
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling v1.0.15
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling spade v2.12.1
[INFO] [stderr]    Compiling nalgebra v0.33.2
[INFO] [stderr]    Compiling imgui v0.12.0
[INFO] [stderr]    Compiling ravif v0.11.10
[INFO] [stderr]    Compiling image v0.25.2
[INFO] [stderr]    Compiling parry3d v0.17.3
[INFO] [stderr]    Compiling rapier3d v0.22.0
[INFO] [stderr]    Compiling reng v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc`, `LazyLock`, `Mutex`, and `ffi::CString`
[INFO] [stdout]  --> src/window.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, ffi::CString, sync::{Arc, LazyLock, Mutex}, time::Instant};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^         ^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/window.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec2, vec3, Mat4, Vec2, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseButton`
[INFO] [stdout]  --> src/window.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, CursorMode, Glfw, GlfwReceiver, Key, MouseButton, PWindow, WindowEvent};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec3`
[INFO] [stdout]  --> src/shader.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glam::{vec3, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `*` and `types::*`
[INFO] [stdout]  --> src/macros.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{*, types::*};
[INFO] [stdout]   |          ^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/game_object.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/game_object.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{EulerRot, Mat4, Quat, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `texture::make_tex`, and `vertex::Vertex`
[INFO] [stdout]  --> src/game_object.rs:5:67
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{line::Line, mesh::Mesh, shapes::{make_shape, Shapes}, texture::make_tex, transform::{self, Transform}, vertex::Vertex};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^              ^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec4`
[INFO] [stdout]  --> src/mesh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Mat4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `texture::make_tex` and `window`
[INFO] [stdout]  --> src/mesh.rs:6:114
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...rs, light::LIGHTS, shader::Shader, texture::make_tex, transform::Transform, vertex::Vertex, window};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec3` and `vec4`
[INFO] [stdout]  --> src/shapes.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec2, vec3, vec4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                        ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::c_void`
[INFO] [stdout]  --> src/texture.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::c_void, path::Path};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNSIGNED_BYTE`
[INFO] [stdout]  --> src/texture.rs:3:59
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{types::{GLint, GLsizei, GLvoid}, GenerateMipmap, UNSIGNED_BYTE};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros::*`
[INFO] [stdout]   --> src/lib.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use macros::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub ID: u32,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vertexCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut fragmentCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let ID = gl::CreateProgram();
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `useProgram` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:68:19
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub unsafe fn useProgram(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setBool` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setInt` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setFloat` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stdout]    |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vec3) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVec3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector4` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub unsafe fn setVector4(&self, name: &CStr, value: &Vec4) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `infoLog` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:71
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut gShaderFile = File::open(geometryPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut vertexCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut fragmentCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut geometryCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let gShaderCode = CString::new(geometryCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 |             let ID = gl::CreateProgram();
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]   --> src/game_object.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: dereferencing a null pointer
[INFO] [stdout]   --> src/macros.rs:9:28
[INFO] [stdout]    |
[INFO] [stdout] 9  |             let offset = &((*std::ptr::null::<$struct_name>()).$field_name) as *const _ as *const std::ffi::c_void;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/mesh.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             gen_attrib_pointers!(Vertex, 0 => position:3, 1 => color:4, 2 => tex_coords:2, 3 => normal: 3);
[INFO] [stdout]    |             ---------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deref_nullptr)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `gen_attrib_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:52
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:155:127
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...ing projection matrix to shader"), &PROJ_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:157:115
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...n sending view matrix to shader"), &VIEW_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             for light in LIGHTS.iter(){
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec4`
[INFO] [stdout]  --> src/mesh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Mat4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `texture::make_tex` and `window`
[INFO] [stdout]  --> src/mesh.rs:6:114
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...rs, light::LIGHTS, shader::Shader, texture::make_tex, transform::Transform, vertex::Vertex, window};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec3`
[INFO] [stdout]  --> src/shader.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glam::{vec3, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `*` and `types::*`
[INFO] [stdout]  --> src/macros.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{*, types::*};
[INFO] [stdout]   |          ^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `LazyLock`, `Mutex`, and `ffi::CString`
[INFO] [stdout]  --> src/window.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, ffi::CString, sync::{Arc, LazyLock, Mutex}, time::Instant};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^         ^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/window.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec2, vec3, Mat4, Vec2, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseButton`
[INFO] [stdout]  --> src/window.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, CursorMode, Glfw, GlfwReceiver, Key, MouseButton, PWindow, WindowEvent};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/game_object.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/game_object.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{EulerRot, Mat4, Quat, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `texture::make_tex`, and `vertex::Vertex`
[INFO] [stdout]  --> src/game_object.rs:5:67
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{line::Line, mesh::Mesh, shapes::{make_shape, Shapes}, texture::make_tex, transform::{self, Transform}, vertex::Vertex};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^              ^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec3` and `vec4`
[INFO] [stdout]  --> src/shapes.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec2, vec3, vec4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                        ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::c_void`
[INFO] [stdout]  --> src/texture.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::c_void, path::Path};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNSIGNED_BYTE`
[INFO] [stdout]  --> src/texture.rs:3:59
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{types::{GLint, GLsizei, GLvoid}, GenerateMipmap, UNSIGNED_BYTE};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use core::f32;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread` and `time::Duration`
[INFO] [stdout]   --> src/main.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::{collections::HashMap, thread, time::Duration};
[INFO] [stdout]    |                                 ^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Quat`, `Vec2`, `Vec3`, `Vec4`, `vec2`, and `vec4`
[INFO] [stdout]   --> src/main.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | use glam::{vec2, vec3, vec4, Quat, Vec2, Vec3, Vec4};
[INFO] [stdout]    |            ^^^^        ^^^^  ^^^^  ^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `line::Line`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use line::Line;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/mesh.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl Mesh{
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn set_texture(&mut self, texture: u32){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     pub fn translate(&mut self, change: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn set_position(&mut self, position: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn scale(&mut self, scale: f32){
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_color(&self) -> Vec4{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn destroy(&mut self){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/game_object.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GameObject<Mesh>{
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_position(&mut self, position: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn translate(&mut self, change: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn scale(&mut self, scale: f32){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn rotate(&mut self, rotation: Vec3){
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn set_rotation(&mut self, rotation: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn get_color(&self) -> Vec4{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn set_shader(&mut self, vert_path: &str, frag_path: &str){
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_begin`, `set_end`, `set_color`, `setup_mesh`, and `draw` are never used
[INFO] [stdout]    --> src/game_object.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout] 86  | impl GameObject<Line>{
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 87  |     pub fn new(begin: Vec3, end: Vec3, bidimensional: bool) -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn set_begin(&mut self, begin: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn set_end(&mut self, end: Vec3){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn setup_mesh(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn draw(&self, view_position: Vec3){
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Circle`, `Quad`, `Sphere`, `Triangle`, and `Line` are never constructed
[INFO] [stdout]   --> src/shapes.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum Shapes{
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 7  |     Circle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 8  |     Quad,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 9  |     Cube,
[INFO] [stdout] 10 |     Sphere,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 11 |     Triangle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 12 |     Line,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Shapes` 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 `CameraMovement` is never used
[INFO] [stdout]  --> src/camera.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum CameraMovement{
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]  --> src/line.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Line{
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `draw` are never used
[INFO] [stdout]   --> src/line.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Line{
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(begin: Vec3, end: Vec3, color: Vec4, bidimensional: bool) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn update(&mut self){
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn draw(&self, view_position: Vec3, transform: Transform){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_line_2d` is never used
[INFO] [stdout]   --> src/line.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn make_line_2d(begin: Vec3, end: Vec3, color: Vec4) -> Mesh {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_line_3d` is never used
[INFO] [stdout]   --> src/line.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn make_line_3d(begin: Vec3, end: Vec3, color: Vec4) -> Mesh {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_line_2d` is never used
[INFO] [stdout]    --> src/line.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn update_line_2d(mesh: &mut Mesh, begin: Vec3, end: Vec3, color: Vec4) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_line_3d` is never used
[INFO] [stdout]    --> src/line.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn update_line_3d(mesh: &mut Mesh, begin: Vec3, end: Vec3, color: Vec4) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |         LIGHTS.push(Light { position: vec3(0., 0., 0.), color: vec3(1., 1., 1.)/3. });
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: dereferencing a null pointer
[INFO] [stdout]   --> src/macros.rs:9:28
[INFO] [stdout]    |
[INFO] [stdout] 9  |             let offset = &((*std::ptr::null::<$struct_name>()).$field_name) as *const _ as *const std::ffi::c_void;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/mesh.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             gen_attrib_pointers!(Vertex, 0 => position:3, 1 => color:4, 2 => tex_coords:2, 3 => normal: 3);
[INFO] [stdout]    |             ---------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deref_nullptr)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `gen_attrib_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:52
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:155:127
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...ing projection matrix to shader"), &PROJ_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:157:115
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...n sending view matrix to shader"), &VIEW_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             for light in LIGHTS.iter(){
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub ID: u32,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vertexCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut fragmentCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let ID = gl::CreateProgram();
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `useProgram` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:68:19
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub unsafe fn useProgram(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setBool` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setInt` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setFloat` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stdout]    |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vec3) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVec3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector4` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub unsafe fn setVector4(&self, name: &CStr, value: &Vec4) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `infoLog` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:71
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut gShaderFile = File::open(geometryPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut vertexCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut fragmentCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut geometryCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let gShaderCode = CString::new(geometryCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 |             let ID = gl::CreateProgram();
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]   --> src/game_object.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s
[INFO] running `Command { std: "docker" "inspect" "8dc84dd493df0a8c7903e1e056f0218c8bdefc380aea72080b01e533b335038e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8dc84dd493df0a8c7903e1e056f0218c8bdefc380aea72080b01e533b335038e", kill_on_drop: false }`
[INFO] [stdout] 8dc84dd493df0a8c7903e1e056f0218c8bdefc380aea72080b01e533b335038e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] effa0418eaf217464edf21b40edfc55689837348a56e775f49338760bf548285
[INFO] running `Command { std: "docker" "start" "-a" "effa0418eaf217464edf21b40edfc55689837348a56e775f49338760bf548285", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `Arc`, `LazyLock`, `Mutex`, and `ffi::CString`
[INFO] [stdout]  --> src/window.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, ffi::CString, sync::{Arc, LazyLock, Mutex}, time::Instant};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^         ^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/window.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec2, vec3, Mat4, Vec2, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseButton`
[INFO] [stdout]  --> src/window.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, CursorMode, Glfw, GlfwReceiver, Key, MouseButton, PWindow, WindowEvent};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec3`
[INFO] [stdout]  --> src/shader.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glam::{vec3, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `*` and `types::*`
[INFO] [stdout]  --> src/macros.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{*, types::*};
[INFO] [stdout]   |          ^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/game_object.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/game_object.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{EulerRot, Mat4, Quat, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `texture::make_tex`, and `vertex::Vertex`
[INFO] [stdout]  --> src/game_object.rs:5:67
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{line::Line, mesh::Mesh, shapes::{make_shape, Shapes}, texture::make_tex, transform::{self, Transform}, vertex::Vertex};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^              ^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec4`
[INFO] [stdout]  --> src/mesh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Mat4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `texture::make_tex` and `window`
[INFO] [stdout]  --> src/mesh.rs:6:114
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...rs, light::LIGHTS, shader::Shader, texture::make_tex, transform::Transform, vertex::Vertex, window};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec3` and `vec4`
[INFO] [stdout]  --> src/shapes.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec2, vec3, vec4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                        ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::c_void`
[INFO] [stdout]  --> src/texture.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::c_void, path::Path};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNSIGNED_BYTE`
[INFO] [stdout]  --> src/texture.rs:3:59
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{types::{GLint, GLsizei, GLvoid}, GenerateMipmap, UNSIGNED_BYTE};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros::*`
[INFO] [stdout]   --> src/lib.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use macros::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub ID: u32,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vertexCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut fragmentCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let ID = gl::CreateProgram();
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `useProgram` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:68:19
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub unsafe fn useProgram(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setBool` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setInt` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setFloat` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stdout]    |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vec3) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVec3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector4` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub unsafe fn setVector4(&self, name: &CStr, value: &Vec4) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling reng v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `infoLog` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:71
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut gShaderFile = File::open(geometryPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut vertexCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut fragmentCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut geometryCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let gShaderCode = CString::new(geometryCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 |             let ID = gl::CreateProgram();
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]   --> src/game_object.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: dereferencing a null pointer
[INFO] [stdout]   --> src/macros.rs:9:28
[INFO] [stdout]    |
[INFO] [stdout] 9  |             let offset = &((*std::ptr::null::<$struct_name>()).$field_name) as *const _ as *const std::ffi::c_void;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/mesh.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             gen_attrib_pointers!(Vertex, 0 => position:3, 1 => color:4, 2 => tex_coords:2, 3 => normal: 3);
[INFO] [stdout]    |             ---------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deref_nullptr)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `gen_attrib_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:52
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:155:127
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...ing projection matrix to shader"), &PROJ_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:157:115
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...n sending view matrix to shader"), &VIEW_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             for light in LIGHTS.iter(){
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `LazyLock`, `Mutex`, and `ffi::CString`
[INFO] [stdout]  --> src/window.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, ffi::CString, sync::{Arc, LazyLock, Mutex}, time::Instant};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^         ^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/window.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec2, vec3, Mat4, Vec2, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseButton`
[INFO] [stdout]  --> src/window.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, CursorMode, Glfw, GlfwReceiver, Key, MouseButton, PWindow, WindowEvent};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec3`
[INFO] [stdout]  --> src/shader.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glam::{vec3, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `*` and `types::*`
[INFO] [stdout]  --> src/macros.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{*, types::*};
[INFO] [stdout]   |          ^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/game_object.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/game_object.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{EulerRot, Mat4, Quat, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `texture::make_tex`, and `vertex::Vertex`
[INFO] [stdout]  --> src/game_object.rs:5:67
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{line::Line, mesh::Mesh, shapes::{make_shape, Shapes}, texture::make_tex, transform::{self, Transform}, vertex::Vertex};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^              ^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec4`
[INFO] [stdout]  --> src/mesh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Mat4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `texture::make_tex` and `window`
[INFO] [stdout]  --> src/mesh.rs:6:114
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...rs, light::LIGHTS, shader::Shader, texture::make_tex, transform::Transform, vertex::Vertex, window};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec3` and `vec4`
[INFO] [stdout]  --> src/shapes.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec2, vec3, vec4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                        ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::c_void`
[INFO] [stdout]  --> src/texture.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::c_void, path::Path};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNSIGNED_BYTE`
[INFO] [stdout]  --> src/texture.rs:3:59
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{types::{GLint, GLsizei, GLvoid}, GenerateMipmap, UNSIGNED_BYTE};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros::*`
[INFO] [stdout]   --> src/lib.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use macros::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec4`
[INFO] [stdout]  --> src/mesh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec4, Mat4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `texture::make_tex` and `window`
[INFO] [stdout]  --> src/mesh.rs:6:114
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...rs, light::LIGHTS, shader::Shader, texture::make_tex, transform::Transform, vertex::Vertex, window};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec3`
[INFO] [stdout]  --> src/shader.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glam::{vec3, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `*` and `types::*`
[INFO] [stdout]  --> src/macros.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{*, types::*};
[INFO] [stdout]   |          ^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `LazyLock`, `Mutex`, and `ffi::CString`
[INFO] [stdout]  --> src/window.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, ffi::CString, sync::{Arc, LazyLock, Mutex}, time::Instant};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^         ^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/window.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec2, vec3, Mat4, Vec2, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MouseButton`
[INFO] [stdout]  --> src/window.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, CursorMode, Glfw, GlfwReceiver, Key, MouseButton, PWindow, WindowEvent};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/game_object.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mat4`
[INFO] [stdout]  --> src/game_object.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{EulerRot, Mat4, Quat, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `texture::make_tex`, and `vertex::Vertex`
[INFO] [stdout]  --> src/game_object.rs:5:67
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{line::Line, mesh::Mesh, shapes::{make_shape, Shapes}, texture::make_tex, transform::{self, Transform}, vertex::Vertex};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^              ^^^^              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vec3` and `vec4`
[INFO] [stdout]  --> src/shapes.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{vec2, vec3, vec4, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                        ^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::c_void`
[INFO] [stdout]  --> src/texture.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::c_void, path::Path};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNSIGNED_BYTE`
[INFO] [stdout]  --> src/texture.rs:3:59
[INFO] [stdout]   |
[INFO] [stdout] 3 | use gl::{types::{GLint, GLsizei, GLvoid}, GenerateMipmap, UNSIGNED_BYTE};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use core::f32;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread` and `time::Duration`
[INFO] [stdout]   --> src/main.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::{collections::HashMap, thread, time::Duration};
[INFO] [stdout]    |                                 ^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Quat`, `Vec2`, `Vec3`, `Vec4`, `vec2`, and `vec4`
[INFO] [stdout]   --> src/main.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | use glam::{vec2, vec3, vec4, Quat, Vec2, Vec3, Vec4};
[INFO] [stdout]    |            ^^^^        ^^^^  ^^^^  ^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `line::Line`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use line::Line;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32`
[INFO] [stdout]  --> examples/raycast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::f32;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collision::Volume`
[INFO] [stdout]  --> examples/raycast.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use collision::Volume;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec3`
[INFO] [stdout]  --> examples/raycast.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glam::{vec3, vec4, Vec3};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rapier3d::prelude`
[INFO] [stdout]  --> examples/raycast.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rapier3d::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> examples/raycast.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         LIGHTS.push(Light { position: vec3(0., 0., 0.), color: vec3(1., 1., 1.)/3. });
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub ID: u32,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vertexCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut fragmentCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let ID = gl::CreateProgram();
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `useProgram` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:68:19
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub unsafe fn useProgram(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setBool` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setInt` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setFloat` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stdout]    |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vec3) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVec3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector4` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub unsafe fn setVector4(&self, name: &CStr, value: &Vec4) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `infoLog` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:71
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut gShaderFile = File::open(geometryPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut vertexCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut fragmentCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut geometryCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let gShaderCode = CString::new(geometryCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 |             let ID = gl::CreateProgram();
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]   --> src/game_object.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: dereferencing a null pointer
[INFO] [stdout]   --> src/macros.rs:9:28
[INFO] [stdout]    |
[INFO] [stdout] 9  |             let offset = &((*std::ptr::null::<$struct_name>()).$field_name) as *const _ as *const std::ffi::c_void;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/mesh.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             gen_attrib_pointers!(Vertex, 0 => position:3, 1 => color:4, 2 => tex_coords:2, 3 => normal: 3);
[INFO] [stdout]    |             ---------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deref_nullptr)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `gen_attrib_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:52
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:155:127
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...ing projection matrix to shader"), &PROJ_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:157:115
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...n sending view matrix to shader"), &VIEW_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             for light in LIGHTS.iter(){
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/mesh.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl Mesh{
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn set_texture(&mut self, texture: u32){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     pub fn translate(&mut self, change: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn set_position(&mut self, position: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn scale(&mut self, scale: f32){
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_color(&self) -> Vec4{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn destroy(&mut self){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/game_object.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GameObject<Mesh>{
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_position(&mut self, position: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn translate(&mut self, change: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn scale(&mut self, scale: f32){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn rotate(&mut self, rotation: Vec3){
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn set_rotation(&mut self, rotation: Vec3){
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn get_color(&self) -> Vec4{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn set_shader(&mut self, vert_path: &str, frag_path: &str){
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_begin`, `set_end`, `set_color`, `setup_mesh`, and `draw` are never used
[INFO] [stdout]    --> src/game_object.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout] 86  | impl GameObject<Line>{
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 87  |     pub fn new(begin: Vec3, end: Vec3, bidimensional: bool) -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn set_begin(&mut self, begin: Vec3){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn set_end(&mut self, end: Vec3){
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_color(&mut self, color: Vec4){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn setup_mesh(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn draw(&self, view_position: Vec3){
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Circle`, `Quad`, `Sphere`, `Triangle`, and `Line` are never constructed
[INFO] [stdout]   --> src/shapes.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum Shapes{
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 7  |     Circle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 8  |     Quad,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 9  |     Cube,
[INFO] [stdout] 10 |     Sphere,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 11 |     Triangle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 12 |     Line,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Shapes` 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 `CameraMovement` is never used
[INFO] [stdout]  --> src/camera.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum CameraMovement{
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]  --> src/line.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Line{
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `draw` are never used
[INFO] [stdout]   --> src/line.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Line{
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(begin: Vec3, end: Vec3, color: Vec4, bidimensional: bool) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn update(&mut self){
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn draw(&self, view_position: Vec3, transform: Transform){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_line_2d` is never used
[INFO] [stdout]   --> src/line.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn make_line_2d(begin: Vec3, end: Vec3, color: Vec4) -> Mesh {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_line_3d` is never used
[INFO] [stdout]   --> src/line.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn make_line_3d(begin: Vec3, end: Vec3, color: Vec4) -> Mesh {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_line_2d` is never used
[INFO] [stdout]    --> src/line.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn update_line_2d(mesh: &mut Mesh, begin: Vec3, end: Vec3, color: Vec4) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_line_3d` is never used
[INFO] [stdout]    --> src/line.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn update_line_3d(mesh: &mut Mesh, begin: Vec3, end: Vec3, color: Vec4) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |         LIGHTS.push(Light { position: vec3(0., 0., 0.), color: vec3(1., 1., 1.)/3. });
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: dereferencing a null pointer
[INFO] [stdout]   --> src/macros.rs:9:28
[INFO] [stdout]    |
[INFO] [stdout] 9  |             let offset = &((*std::ptr::null::<$struct_name>()).$field_name) as *const _ as *const std::ffi::c_void;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/mesh.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             gen_attrib_pointers!(Vertex, 0 => position:3, 1 => color:4, 2 => tex_coords:2, 3 => normal: 3);
[INFO] [stdout]    |             ---------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deref_nullptr)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `gen_attrib_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]     |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/mesh.rs:137:52
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn set_shader(&mut self, vertexPath: &str, fragmentPath: &str){
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:155:127
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...ing projection matrix to shader"), &PROJ_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:157:115
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...n sending view matrix to shader"), &VIEW_MATRIX.to_cols_array());
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/mesh.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             for light in LIGHTS.iter(){
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub ID: u32,
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(vertexPath: &str, fragmentPath: &str) -> Shader {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vertexCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut fragmentCode = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let ID = gl::CreateProgram();
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `useProgram` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:68:19
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub unsafe fn useProgram(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setBool` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setInt` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stdout]    |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setFloat` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stdout]    |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vec3) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVec3` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:90:19
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stdout]    |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setVector4` should have a snake case name
[INFO] [stdout]   --> src/shader.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub unsafe fn setVector4(&self, name: &CStr, value: &Vec4) {
[INFO] [stdout]    |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `infoLog` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryPath` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:139:71
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_geometry_shader(vertexPath: &str, fragmentPath: &str, geometryPath: &str) -> Self {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let mut vShaderFile = File::open(vertexPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut fShaderFile = File::open(fragmentPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderFile` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:146:17
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut gShaderFile = File::open(geometryPath)
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vertexCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut vertexCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fragmentCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut fragmentCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `geometryCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut geometryCode = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `geometry_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `gShaderCode` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let gShaderCode = CString::new(geometryCode.as_bytes()).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `g_shader_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ID` should have a snake case name
[INFO] [stdout]    --> src/shader.rs:184:17
[INFO] [stdout]     |
[INFO] [stdout] 184 |             let ID = gl::CreateProgram();
[INFO] [stdout]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale3D` should have a snake case name
[INFO] [stdout]   --> src/game_object.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn scale3D(&mut self, scale: Vec3){
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `scale3_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.05s
[INFO] running `Command { std: "docker" "inspect" "effa0418eaf217464edf21b40edfc55689837348a56e775f49338760bf548285", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "effa0418eaf217464edf21b40edfc55689837348a56e775f49338760bf548285", kill_on_drop: false }`
[INFO] [stdout] effa0418eaf217464edf21b40edfc55689837348a56e775f49338760bf548285
