[INFO] updating cached repository https://github.com/Peanuttown/rustOpengl
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 37ffdc2ea4357724e0374d8da7068a8977174515
[INFO] checking Peanuttown/rustOpengl against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPeanuttown%2FrustOpengl" "/workspace/builds/worker-2/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Peanuttown/rustOpengl on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/Peanuttown/rustOpengl
[INFO] finished tweaking git repo https://github.com/Peanuttown/rustOpengl
[INFO] tweaked toml for git repo https://github.com/Peanuttown/rustOpengl written to /workspace/builds/worker-2/source/Cargo.toml
[INFO] crate git repo https://github.com/Peanuttown/rustOpengl already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 9462739ef51a0abb8dc3a502c2e43b2840cd9d49d6957be0b6b97e962f0f88b7
[INFO] running `"docker" "start" "-a" "9462739ef51a0abb8dc3a502c2e43b2840cd9d49d6957be0b6b97e962f0f88b7"`
[INFO] [stderr]     Checking tobj v0.1.11
[INFO] [stderr]     Checking glfw v0.36.0 (https://github.com/bjz/glfw-rs.git#7c50c97e)
[INFO] [stderr]     Checking cgmath v0.16.1
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking rayon-core v1.7.0
[INFO] [stderr]     Checking rayon v1.3.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.18
[INFO] [stderr]     Checking image v0.19.0
[INFO] [stderr]     Checking tzzgl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused import: `std::io::BufReader`
[INFO] [stderr]  --> src/lib.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::io::BufReader;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]   --> src/lib.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::io::{Error};
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `Camera_Movement` should have an upper camel case name
[INFO] [stderr]   --> src/camera.rs:16:10
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum Camera_Movement{
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CameraMovement`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> src/tzzMacro.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | / macro_rules! offset_of {
[INFO] [stderr] 14 | |     ($ty:ty, $field:ident) => {
[INFO] [stderr] 15 | |         &(*(std::ptr::null() as *const $ty)).$field as *const _ as usize
[INFO] [stderr] 16 | |     }
[INFO] [stderr] 17 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufReader`
[INFO] [stderr]  --> src/lib.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::io::BufReader;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]   --> src/lib.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::io::{Error};
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `Camera_Movement` should have an upper camel case name
[INFO] [stderr]   --> src/camera.rs:16:10
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum Camera_Movement{
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CameraMovement`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> src/tzzMacro.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | / macro_rules! offset_of {
[INFO] [stderr] 14 | |     ($ty:ty, $field:ident) => {
[INFO] [stderr] 15 | |         &(*(std::ptr::null() as *const $ty)).$field as *const _ as usize
[INFO] [stderr] 16 | |     }
[INFO] [stderr] 17 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/camera.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |             _=>{},
[INFO] [stderr]    |             ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `PITCH`
[INFO] [stderr]   --> src/camera.rs:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | const PITCH: f32 = 0.0;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SPEED`
[INFO] [stderr]   --> src/camera.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | const SPEED: f32 = 2.5;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SENSITIVTY`
[INFO] [stderr]   --> src/camera.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | const SENSITIVTY: f32 = 0.1;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `ZOOM`
[INFO] [stderr]   --> src/camera.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | const ZOOM: f32 = 45.0;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `VERTEX_SHADER`
[INFO] [stderr]   --> src/lib.rs:99:1
[INFO] [stderr]    |
[INFO] [stderr] 99 | const VERTEX_SHADER :&str= "VERTEX";
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `FRAG_SHADER`
[INFO] [stderr]    --> src/lib.rs:100:1
[INFO] [stderr]     |
[INFO] [stderr] 100 | const FRAG_SHADER :&str= "FRAGMENT";
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SHADER_PROGRAM`
[INFO] [stderr]    --> src/lib.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | const SHADER_PROGRAM :&str= "PROGRAM";
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `tzzMacro` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | mod tzzMacro;
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to snake case: `tzz_macro`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `base_path` should have an upper case name
[INFO] [stderr]   --> src/lib.rs:23:11
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const base_path:&str = "../learn-opengl-rs/";
[INFO] [stderr]    |           ^^^^^^^^^ help: convert the identifier to upper case: `BASE_PATH`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `inittzzglMgr` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub fn inittzzglMgr(w :u32,h:u32)->impl TzzGl{
[INFO] [stderr]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `inittzzgl_mgr`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `glfwInstance` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:89:5
[INFO] [stderr]    |
[INFO] [stderr] 89 |     glfwInstance : glfw::Glfw,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `glfw_instance`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `ID` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:96:9
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub ID :u32,
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vShaderFile` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:107:17
[INFO] [stderr]     |
[INFO] [stderr] 107 |         let mut vShaderFile = File::open(vs)
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fShaderFile` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:109:17
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let mut fShaderFile = File::open(fs)
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vertexCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |         let mut vertexCode = String::new();
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fragmentCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut fragmentCode = String::new();
[INFO] [stderr]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vShaderCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:120:13
[INFO] [stderr]     |
[INFO] [stderr] 120 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fShaderCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:121:13
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ID` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:136:17
[INFO] [stderr]     |
[INFO] [stderr] 136 |             let ID = gl::CreateProgram();
[INFO] [stderr]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stderr] 
[INFO] [stderr] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:149:15
[INFO] [stderr]     |
[INFO] [stderr] 149 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `infoLog` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:151:17
[INFO] [stderr]     |
[INFO] [stderr] 151 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stderr] 
[INFO] [stderr] warning: method `useProgram` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:201:19
[INFO] [stderr]     |
[INFO] [stderr] 201 |     pub unsafe fn useProgram(&self) {
[INFO] [stderr]     |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setBool` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:205:19
[INFO] [stderr]     |
[INFO] [stderr] 205 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setInt` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:209:19
[INFO] [stderr]     |
[INFO] [stderr] 209 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stderr]     |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setFloat` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:213:19
[INFO] [stderr]     |
[INFO] [stderr] 213 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stderr]     |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setVector3` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:217:19
[INFO] [stderr]     |
[INFO] [stderr] 217 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vector3<f32>) {
[INFO] [stderr]     |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setVec3` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:221:19
[INFO] [stderr]     |
[INFO] [stderr] 221 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setMat4` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:225:19
[INFO] [stderr]     |
[INFO] [stderr] 225 |     pub unsafe fn setMat4(&self, name: &CStr, mat: &Matrix4<f32>) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_mat4`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `glfwE` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:247:13
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let mut glfwE= glfw::init(glfw::FAIL_ON_ERRORS)?;
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `glfw_e`
[INFO] [stderr] 
[INFO] [stderr] warning: function `concateStr` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:271:8
[INFO] [stderr]     |
[INFO] [stderr] 271 | pub fn concateStr<'a>(s1:&'a str,s2:&'a str)->String{
[INFO] [stderr]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `concate_str`
[INFO] [stderr] 
[INFO] [stderr] warning: function `genPath` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:275:8
[INFO] [stderr]     |
[INFO] [stderr] 275 | pub fn genPath(path :&str)->String{
[INFO] [stderr]     |        ^^^^^^^ help: convert the identifier to snake case: `gen_path`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `worldUp` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub worldUp:Vector3,
[INFO] [stderr]    |         ^^^^^^^ help: convert the identifier to snake case: `world_up`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `mouseSensitivity` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub mouseSensitivity:f32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `mouse_sensitivity`
[INFO] [stderr] 
[INFO] [stderr] warning: method `getViewMatrix` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn getViewMatrix(&self)->Matrix4{
[INFO] [stderr]    |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_view_matrix`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processKeyboard` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:59:12
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub fn processKeyboard(&mut self,direction:Camera_Movement,dt:f32){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_keyboard`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processMouseMovement` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn processMouseMovement(&mut self,mut offset_x:f32,mut offset_y:f32,constrainPitch :bool){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_mouse_movement`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `constrainPitch` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:69:77
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn processMouseMovement(&mut self,mut offset_x:f32,mut offset_y:f32,constrainPitch :bool){
[INFO] [stderr]    |                                                                             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `constrain_pitch`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processMouseScroll` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:86:12
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn processMouseScroll(&mut self,offset_y:f32){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_mouse_scroll`
[INFO] [stderr] 
[INFO] [stderr] warning: method `updateCameraVectors` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 |     fn updateCameraVectors(&mut self){
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_camera_vectors`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/camera.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |             _=>{},
[INFO] [stderr]    |             ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `PITCH`
[INFO] [stderr]   --> src/camera.rs:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | const PITCH: f32 = 0.0;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SPEED`
[INFO] [stderr]   --> src/camera.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | const SPEED: f32 = 2.5;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SENSITIVTY`
[INFO] [stderr]   --> src/camera.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | const SENSITIVTY: f32 = 0.1;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `ZOOM`
[INFO] [stderr]   --> src/camera.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | const ZOOM: f32 = 45.0;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `VERTEX_SHADER`
[INFO] [stderr]   --> src/lib.rs:99:1
[INFO] [stderr]    |
[INFO] [stderr] 99 | const VERTEX_SHADER :&str= "VERTEX";
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `FRAG_SHADER`
[INFO] [stderr]    --> src/lib.rs:100:1
[INFO] [stderr]     |
[INFO] [stderr] 100 | const FRAG_SHADER :&str= "FRAGMENT";
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SHADER_PROGRAM`
[INFO] [stderr]    --> src/lib.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | const SHADER_PROGRAM :&str= "PROGRAM";
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `tzzMacro` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | mod tzzMacro;
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to snake case: `tzz_macro`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `base_path` should have an upper case name
[INFO] [stderr]   --> src/lib.rs:23:11
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const base_path:&str = "../learn-opengl-rs/";
[INFO] [stderr]    |           ^^^^^^^^^ help: convert the identifier to upper case: `BASE_PATH`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `inittzzglMgr` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub fn inittzzglMgr(w :u32,h:u32)->impl TzzGl{
[INFO] [stderr]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `inittzzgl_mgr`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `glfwInstance` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:89:5
[INFO] [stderr]    |
[INFO] [stderr] 89 |     glfwInstance : glfw::Glfw,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `glfw_instance`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `ID` should have a snake case name
[INFO] [stderr]   --> src/lib.rs:96:9
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub ID :u32,
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `id`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vShaderFile` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:107:17
[INFO] [stderr]     |
[INFO] [stderr] 107 |         let mut vShaderFile = File::open(vs)
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fShaderFile` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:109:17
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let mut fShaderFile = File::open(fs)
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_file`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vertexCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |         let mut vertexCode = String::new();
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `vertex_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fragmentCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut fragmentCode = String::new();
[INFO] [stderr]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `fragment_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vShaderCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:120:13
[INFO] [stderr]     |
[INFO] [stderr] 120 |         let vShaderCode = CString::new(vertexCode.as_bytes()).unwrap();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `v_shader_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `fShaderCode` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:121:13
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let fShaderCode = CString::new(fragmentCode.as_bytes()).unwrap();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `f_shader_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ID` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:136:17
[INFO] [stderr]     |
[INFO] [stderr] 136 |             let ID = gl::CreateProgram();
[INFO] [stderr]     |                 ^^ help: convert the identifier to snake case: `id`
[INFO] [stderr] 
[INFO] [stderr] warning: method `checkCompileErrors` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:149:15
[INFO] [stderr]     |
[INFO] [stderr] 149 |     unsafe fn checkCompileErrors(&self, shader: u32, type_: &str) {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_compile_errors`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `infoLog` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:151:17
[INFO] [stderr]     |
[INFO] [stderr] 151 |         let mut infoLog = Vec::with_capacity(1024);
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `info_log`
[INFO] [stderr] 
[INFO] [stderr] warning: method `useProgram` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:201:19
[INFO] [stderr]     |
[INFO] [stderr] 201 |     pub unsafe fn useProgram(&self) {
[INFO] [stderr]     |                   ^^^^^^^^^^ help: convert the identifier to snake case: `use_program`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setBool` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:205:19
[INFO] [stderr]     |
[INFO] [stderr] 205 |     pub unsafe fn setBool(&self, name: &CStr, value: bool) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_bool`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setInt` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:209:19
[INFO] [stderr]     |
[INFO] [stderr] 209 |     pub unsafe fn setInt(&self, name: &CStr, value: i32) {
[INFO] [stderr]     |                   ^^^^^^ help: convert the identifier to snake case: `set_int`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setFloat` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:213:19
[INFO] [stderr]     |
[INFO] [stderr] 213 |     pub unsafe fn setFloat(&self, name: &CStr, value: f32) {
[INFO] [stderr]     |                   ^^^^^^^^ help: convert the identifier to snake case: `set_float`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setVector3` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:217:19
[INFO] [stderr]     |
[INFO] [stderr] 217 |     pub unsafe fn setVector3(&self, name: &CStr, value: &Vector3<f32>) {
[INFO] [stderr]     |                   ^^^^^^^^^^ help: convert the identifier to snake case: `set_vector3`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setVec3` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:221:19
[INFO] [stderr]     |
[INFO] [stderr] 221 |     pub unsafe fn setVec3(&self, name: &CStr, x: f32, y: f32, z: f32) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_vec3`
[INFO] [stderr] 
[INFO] [stderr] warning: method `setMat4` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:225:19
[INFO] [stderr]     |
[INFO] [stderr] 225 |     pub unsafe fn setMat4(&self, name: &CStr, mat: &Matrix4<f32>) {
[INFO] [stderr]     |                   ^^^^^^^ help: convert the identifier to snake case: `set_mat4`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `glfwE` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:247:13
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let mut glfwE= glfw::init(glfw::FAIL_ON_ERRORS)?;
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `glfw_e`
[INFO] [stderr] 
[INFO] [stderr] warning: function `concateStr` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:271:8
[INFO] [stderr]     |
[INFO] [stderr] 271 | pub fn concateStr<'a>(s1:&'a str,s2:&'a str)->String{
[INFO] [stderr]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `concate_str`
[INFO] [stderr] 
[INFO] [stderr] warning: function `genPath` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:275:8
[INFO] [stderr]     |
[INFO] [stderr] 275 | pub fn genPath(path :&str)->String{
[INFO] [stderr]     |        ^^^^^^^ help: convert the identifier to snake case: `gen_path`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `worldUp` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub worldUp:Vector3,
[INFO] [stderr]    |         ^^^^^^^ help: convert the identifier to snake case: `world_up`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `mouseSensitivity` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub mouseSensitivity:f32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `mouse_sensitivity`
[INFO] [stderr] 
[INFO] [stderr] warning: method `getViewMatrix` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn getViewMatrix(&self)->Matrix4{
[INFO] [stderr]    |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_view_matrix`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processKeyboard` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:59:12
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub fn processKeyboard(&mut self,direction:Camera_Movement,dt:f32){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_keyboard`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processMouseMovement` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn processMouseMovement(&mut self,mut offset_x:f32,mut offset_y:f32,constrainPitch :bool){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_mouse_movement`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `constrainPitch` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:69:77
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn processMouseMovement(&mut self,mut offset_x:f32,mut offset_y:f32,constrainPitch :bool){
[INFO] [stderr]    |                                                                             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `constrain_pitch`
[INFO] [stderr] 
[INFO] [stderr] warning: method `processMouseScroll` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:86:12
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn processMouseScroll(&mut self,offset_y:f32){
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `process_mouse_scroll`
[INFO] [stderr] 
[INFO] [stderr] warning: method `updateCameraVectors` should have a snake case name
[INFO] [stderr]   --> src/camera.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 |     fn updateCameraVectors(&mut self){
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_camera_vectors`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tzzgl::TzzGl`
[INFO] [stderr]  --> examples/echo.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use tzzgl::TzzGl;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SCR_WIDTH`
[INFO] [stderr]  --> examples/echo.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | const SCR_WIDTH: u32 = 800;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `SCR_HEIGHT`
[INFO] [stderr]  --> examples/echo.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | const SCR_HEIGHT: u32 = 600;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> examples/pg.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> examples/pg.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tzzgl::Shader`
[INFO] [stderr]  --> examples/pg.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use tzzgl::Shader;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `tzz` should have an upper camel case name
[INFO] [stderr]  --> examples/pg.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | struct tzz{
[INFO] [stderr]   |        ^^^ help: convert the identifier to upper camel case: `Tzz`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `tang` should have an upper camel case name
[INFO] [stderr]   --> examples/pg.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | struct tang{
[INFO] [stderr]    |        ^^^^ help: convert the identifier to upper camel case: `Tang`
[INFO] [stderr] 
[INFO] [stderr] warning: type `tangbe` should have an upper camel case name
[INFO] [stderr]   --> examples/pg.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | struct tangbe(i32);
[INFO] [stderr]    |        ^^^^^^ help: convert the identifier to upper camel case: `Tangbe`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env`
[INFO] [stderr]   --> examples/pg.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 | use std::env;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> examples/pg.rs:57:13
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn echo2<T>(t:T)->i32  where T:Drop{
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rr`
[INFO] [stderr]   --> examples/pg.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     let rr = unsafe{
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_rr`
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `make_tester`
[INFO] [stderr]   --> examples/pg.rs:33:4
[INFO] [stderr]    |
[INFO] [stderr] 33 | fn make_tester<'a>(answer: &'a str) -> impl Fn(&str) -> bool + 'a {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `apply`
[INFO] [stderr]   --> examples/pg.rs:41:4
[INFO] [stderr]    |
[INFO] [stderr] 41 | fn apply<F>(mut f: F) where
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `apply_to_3`
[INFO] [stderr]   --> examples/pg.rs:50:4
[INFO] [stderr]    |
[INFO] [stderr] 50 | fn apply_to_3<F>(f: F) -> i32 where
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `echo2`
[INFO] [stderr]   --> examples/pg.rs:57:4
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn echo2<T>(t:T)->i32  where T:Drop{
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `echoString`
[INFO] [stderr]   --> examples/pg.rs:84:4
[INFO] [stderr]    |
[INFO] [stderr] 84 | fn echoString(s :&mut String){
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `echoString` should have a snake case name
[INFO] [stderr]   --> examples/pg.rs:84:4
[INFO] [stderr]    |
[INFO] [stderr] 84 | fn echoString(s :&mut String){
[INFO] [stderr]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `echo_string`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:251:24
[INFO] [stderr]     |
[INFO] [stderr] 251 |         cameraPos.x += (cameraSpeed);
[INFO] [stderr]     |                        ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `radius`
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:198:21
[INFO] [stderr]     |
[INFO] [stderr] 198 |                 let radius: f32 = 10.0;
[INFO] [stderr]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/1-7-2-cameraKeyboard.rs:15:32
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let (mut glfw, mut window, mut events) = tzzgl::initglfw().expect("init glfw error");
[INFO] [stderr]    |                                ----^^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:201:21
[INFO] [stderr]     |
[INFO] [stderr] 201 |                 let mut cameraFront: Vector3<f32> = Vector3 {
[INFO] [stderr]     |                     ----^^^^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:184:13
[INFO] [stderr]     |
[INFO] [stderr] 18  |     unsafe {
[INFO] [stderr]     |     ------ because it's nested under this `unsafe` block
[INFO] [stderr] ...
[INFO] [stderr] 184 |             unsafe {
[INFO] [stderr]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: crate `1_7_2_cameraKeyboard` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr]   = help: convert the identifier to snake case: `1_7_2_camera_keyboard`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubeVertices` should have a snake case name
[INFO] [stderr]   --> examples/1-7-2-cameraKeyboard.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let cubeVertices: [f32; 180] = [
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_vertices`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubePositions` should have a snake case name
[INFO] [stderr]   --> examples/1-7-2-cameraKeyboard.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let cubePositions: [Vector3<f32>; 10] = [
[INFO] [stderr]    |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_positions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `imgContinaer` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:128:13
[INFO] [stderr]     |
[INFO] [stderr] 128 |         let imgContinaer = image::open(&Path::new(&tzzgl::concateStr(tzzgl::base_path,"resources/textures/container.jpg"))).expect("load container image failed");
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `img_continaer`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraPos` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:169:17
[INFO] [stderr]     |
[INFO] [stderr] 169 |         let mut cameraPos = Point3::new(radius,0.0,radius);
[INFO] [stderr]     |                 ^^^^^^^^^ help: convert the identifier to snake case: `camera_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `deltaTime` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:170:17
[INFO] [stderr]     |
[INFO] [stderr] 170 |         let mut deltaTime: f32; // time between current frame and last frame
[INFO] [stderr]     |                 ^^^^^^^^^ help: convert the identifier to snake case: `delta_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastFrame` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:171:17
[INFO] [stderr]     |
[INFO] [stderr] 171 |         let mut lastFrame: f32 = 0.0;
[INFO] [stderr]     |                 ^^^^^^^^^ help: convert the identifier to snake case: `last_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentFrame` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:177:17
[INFO] [stderr]     |
[INFO] [stderr] 177 |             let currentFrame = glfw.get_time() as f32;
[INFO] [stderr]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `current_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraFront` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:201:25
[INFO] [stderr]     |
[INFO] [stderr] 201 |                 let mut cameraFront: Vector3<f32> = Vector3 {
[INFO] [stderr]     |                         ^^^^^^^^^^^ help: convert the identifier to snake case: `camera_front`
[INFO] [stderr] 
[INFO] [stderr] warning: function `processInput` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:231:4
[INFO] [stderr]     |
[INFO] [stderr] 231 | fn processInput(window: &mut glfw::Window, deltaTime: f32, cameraPos: &mut Point3<f32>) {
[INFO] [stderr]     |    ^^^^^^^^^^^^ help: convert the identifier to snake case: `process_input`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `deltaTime` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:231:44
[INFO] [stderr]     |
[INFO] [stderr] 231 | fn processInput(window: &mut glfw::Window, deltaTime: f32, cameraPos: &mut Point3<f32>) {
[INFO] [stderr]     |                                            ^^^^^^^^^ help: convert the identifier to snake case: `delta_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraPos` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:231:60
[INFO] [stderr]     |
[INFO] [stderr] 231 | fn processInput(window: &mut glfw::Window, deltaTime: f32, cameraPos: &mut Point3<f32>) {
[INFO] [stderr]     |                                                            ^^^^^^^^^ help: convert the identifier to snake case: `camera_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraSpeed` should have a snake case name
[INFO] [stderr]    --> examples/1-7-2-cameraKeyboard.rs:236:9
[INFO] [stderr]     |
[INFO] [stderr] 236 |     let cameraSpeed = 2.5 * deltaTime;
[INFO] [stderr]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `camera_speed`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x_offset`
[INFO] [stderr]    --> examples/2-1-light.rs:177:39
[INFO] [stderr]     |
[INFO] [stderr] 177 |             glfw::WindowEvent::Scroll(x_offset,y_offset)=>{
[INFO] [stderr]     |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_offset`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/2-1-light.rs:170:21
[INFO] [stderr]     |
[INFO] [stderr] 170 |                 let mut xoffset = xpos - *lastX;
[INFO] [stderr]     |                     ----^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/2-1-light.rs:171:21
[INFO] [stderr]     |
[INFO] [stderr] 171 |                 let mut yoffset = *lastY - ypos; // reversed since y-coordinates go from bottom to top
[INFO] [stderr]     |                     ----^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Action`, `Key`
[INFO] [stderr]  --> examples/1-7-1-camera.rs:3:27
[INFO] [stderr]   |
[INFO] [stderr] 3 | use self::glfw::{Context, Key, Action};
[INFO] [stderr]   |                           ^^^  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc::Receiver`
[INFO] [stderr]   --> examples/1-7-1-camera.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::sync::mpsc::Receiver;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CStr`
[INFO] [stderr]   --> examples/1-7-1-camera.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::ffi::{CStr,CString};
[INFO] [stderr]    |                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `glfwE` should have a snake case name
[INFO] [stderr]   --> examples/2-1-light.rs:15:14
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let (mut glfwE,mut window ,events)= tzzgl::initglfw().expect("init glfw failed");
[INFO] [stderr]    |              ^^^^^ help: convert the identifier to snake case: `glfw_e`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lampPos` should have a snake case name
[INFO] [stderr]   --> examples/2-1-light.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let lampPos = vec3(1.2,1.0,2.0);
[INFO] [stderr]    |         ^^^^^^^ help: convert the identifier to snake case: `lamp_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubeModelVetices` should have a snake case name
[INFO] [stderr]   --> examples/2-1-light.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let cubeModelVetices:[f32;108] =[
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_model_vetices`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lightingShader` should have a snake case name
[INFO] [stderr]   --> examples/2-1-light.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let lightingShader = tzzgl::Shader::new(&tzzgl::genPath("../learn-opengl-rs/src/_2_lighting/shaders/1.colors.vs"),&tzzgl::genPath("../learn-opengl-rs/src/_2_lighting/shaders/1.colors.fs")).expect("compile lighting shader failed");
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lighting_shader`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lampShader` should have a snake case name
[INFO] [stderr]   --> examples/2-1-light.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let lampShader= tzzgl::Shader::new(&tzzgl::genPath("../learn-opengl-rs/src/_2_lighting/shaders/1.lamp.vs"),&tzzgl::genPath("../learn-opengl-rs/src/_2_lighting/shaders/1.lamp.fs")).expect("compile lamp shader failed");
[INFO] [stderr]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `lamp_shader`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `prevTime` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:103:13
[INFO] [stderr]     |
[INFO] [stderr] 103 |     let mut prevTime = glfwE.get_time();
[INFO] [stderr]     |             ^^^^^^^^ help: convert the identifier to snake case: `prev_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraE` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |     let mut cameraE = tzzgl::camera::Camera{
[INFO] [stderr]     |             ^^^^^^^ help: convert the identifier to snake case: `camera_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstMouse` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:108:13
[INFO] [stderr]     |
[INFO] [stderr] 108 |     let mut firstMouse = true;
[INFO] [stderr]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `first_mouse`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastX` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:109:13
[INFO] [stderr]     |
[INFO] [stderr] 109 |     let mut lastX = 0.0;
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `last_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastY` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:110:13
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut lastY =0.0;
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `last_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `curTime` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let curTime =glfwE.get_time();
[INFO] [stderr]     |             ^^^^^^^ help: convert the identifier to snake case: `cur_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lightedModelTrans` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:125:13
[INFO] [stderr]     |
[INFO] [stderr] 125 |         let lightedModelTrans = Matrix4::<f32>::identity();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lighted_model_trans`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lampModelTrans` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:137:17
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let mut lampModelTrans = Matrix4::from_translation(lampPos);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `lamp_model_trans`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraE` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:153:5
[INFO] [stderr]     |
[INFO] [stderr] 153 |     cameraE:&mut tzzgl::camera::Camera,
[INFO] [stderr]     |     ^^^^^^^ help: convert the identifier to snake case: `camera_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstMouse` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:154:5
[INFO] [stderr]     |
[INFO] [stderr] 154 |     firstMouse:&mut bool,
[INFO] [stderr]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `first_mouse`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastX` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:155:5
[INFO] [stderr]     |
[INFO] [stderr] 155 |     lastX:&mut f32,
[INFO] [stderr]     |     ^^^^^ help: convert the identifier to snake case: `last_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastY` should have a snake case name
[INFO] [stderr]    --> examples/2-1-light.rs:156:5
[INFO] [stderr]     |
[INFO] [stderr] 156 |     lastY:&mut f32,
[INFO] [stderr]     |     ^^^^^ help: convert the identifier to snake case: `last_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/1-7-1-camera.rs:28:27
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let (mut glfw,mut window,mut events) = tzzgl::initglfw().expect("init glfw failed");
[INFO] [stderr]    |                              ----^^^^^^
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ourShader` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let ourShader = tzzgl::Shader::new(
[INFO] [stderr]    |             ^^^^^^^^^ help: convert the identifier to snake case: `our_shader`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubePositions` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:88:13
[INFO] [stderr]    |
[INFO] [stderr] 88 |         let cubePositions: [Vector3<f32>; 10] = [vec3(0.0, 0.0, 0.0),
[INFO] [stderr]    |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_positions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `VBO` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:98:18
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let (mut VBO, mut VAO) = (0, 0);
[INFO] [stderr]    |                  ^^^ help: convert the identifier to snake case: `vbo`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `VAO` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:98:27
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let (mut VBO, mut VAO) = (0, 0);
[INFO] [stderr]    |                           ^^^ help: convert the identifier to snake case: `vao`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ourShader` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:30:10
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let (ourShader, VBO, VAO, texture1, texture2, cubePositions) = unsafe {
[INFO] [stderr]    |          ^^^^^^^^^ help: convert the identifier to snake case: `our_shader`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `VBO` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:30:21
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let (ourShader, VBO, VAO, texture1, texture2, cubePositions) = unsafe {
[INFO] [stderr]    |                     ^^^ help: convert the identifier to snake case: `vbo`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `VAO` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:30:26
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let (ourShader, VBO, VAO, texture1, texture2, cubePositions) = unsafe {
[INFO] [stderr]    |                          ^^^ help: convert the identifier to snake case: `vao`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubePositions` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-camera.rs:30:51
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let (ourShader, VBO, VAO, texture1, texture2, cubePositions) = unsafe {
[INFO] [stderr]    |                                                   ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_positions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camX` should have a snake case name
[INFO] [stderr]    --> examples/1-7-1-camera.rs:211:17
[INFO] [stderr]     |
[INFO] [stderr] 211 |             let camX = glfw.get_time().sin() as f32 * radius;
[INFO] [stderr]     |                 ^^^^ help: convert the identifier to snake case: `cam_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camZ` should have a snake case name
[INFO] [stderr]    --> examples/1-7-1-camera.rs:212:17
[INFO] [stderr]     |
[INFO] [stderr] 212 |             let camZ = glfw.get_time().cos() as f32 * radius;
[INFO] [stderr]     |                 ^^^^ help: convert the identifier to snake case: `cam_z`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `cameraUp` in this scope
[INFO] [stderr]    --> examples/1-7-3-cameraMouse.rs:300:43
[INFO] [stderr]     |
[INFO] [stderr] 300 |         *cameraPos += -(cameraFront.cross(cameraUp).normalize() * cameraSpeed);
[INFO] [stderr]     |                                           ^^^^^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `cameraUp` in this scope
[INFO] [stderr]    --> examples/1-7-3-cameraMouse.rs:303:41
[INFO] [stderr]     |
[INFO] [stderr] 303 |         *cameraPos += cameraFront.cross(cameraUp).normalize() * cameraSpeed;
[INFO] [stderr]     |                                         ^^^^^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr]  --> examples/1-7-3-cameraMouse.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #[macro_use]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 2 previous errors
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0425`.
[INFO] [stderr] warning: crate `clearColor` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr]   = help: convert the identifier to snake case: `clear_color`
[INFO] [stderr] 
[INFO] [stderr] warning: crate `tempCamera` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr]   = help: convert the identifier to snake case: `temp_camera`
[INFO] [stderr] 
[INFO] [stderr] error: could not compile `tzzgl`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: variable `cubeModels` should have a snake case name
[INFO] [stderr]   --> examples/tempCamera.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |         let cubeModels:[f32;9] = [
[INFO] [stderr]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `cube_models`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Action`, `Key`
[INFO] [stderr]   --> examples/1-7-1-cameraCopy.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use glfw::{Context, Key, Action};
[INFO] [stderr]    |                     ^^^  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/1-7-1-cameraCopy.rs:16:32
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let (mut glfw, mut window, mut events) = tzzgl::initglfw().expect("init glfw error");
[INFO] [stderr]    |                                ----^^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> examples/1-7-1-cameraCopy.rs:175:13
[INFO] [stderr]     |
[INFO] [stderr] 19  |     unsafe {
[INFO] [stderr]     |     ------ because it's nested under this `unsafe` block
[INFO] [stderr] ...
[INFO] [stderr] 175 |             unsafe {
[INFO] [stderr]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: crate `1_7_1_cameraCopy` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr]   = help: convert the identifier to snake case: `1_7_1_camera_copy`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubeVertices` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-cameraCopy.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let cubeVertices: [f32; 180] = [
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_vertices`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubePositions` should have a snake case name
[INFO] [stderr]   --> examples/1-7-1-cameraCopy.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let cubePositions: [Vector3<f32>; 10] = [
[INFO] [stderr]    |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_positions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `imgContinaer` should have a snake case name
[INFO] [stderr]    --> examples/1-7-1-cameraCopy.rs:129:13
[INFO] [stderr]     |
[INFO] [stderr] 129 |         let imgContinaer = image::open(&Path::new(&tzzgl::concateStr(tzzgl::base_path,"resources/textures/container.jpg"))).expect("load container image failed");
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `img_continaer`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camX` should have a snake case name
[INFO] [stderr]    --> examples/1-7-1-cameraCopy.rs:190:21
[INFO] [stderr]     |
[INFO] [stderr] 190 |                 let camX = glfw.get_time().sin() as f32 * radius;
[INFO] [stderr]     |                     ^^^^ help: convert the identifier to snake case: `cam_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `camZ` should have a snake case name
[INFO] [stderr]    --> examples/1-7-1-cameraCopy.rs:191:21
[INFO] [stderr]     |
[INFO] [stderr] 191 |                 let camZ = glfw.get_time().cos() as f32 * radius;
[INFO] [stderr]     |                     ^^^^ help: convert the identifier to snake case: `cam_z`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `cgmath::prelude`
[INFO] [stderr]   --> examples/camera.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use cgmath::prelude::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `dt` is never read
[INFO] [stderr]    --> examples/camera.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 117 |         let mut dt =0.0;
[INFO] [stderr]     |                 ^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `yaw`
[INFO] [stderr]    --> examples/camera.rs:121:17
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let mut yaw =-90.0;
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_yaw`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pitch`
[INFO] [stderr]    --> examples/camera.rs:122:17
[INFO] [stderr]     |
[INFO] [stderr] 122 |         let mut pitch =0.0;
[INFO] [stderr]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x_offset`
[INFO] [stderr]    --> examples/camera.rs:175:39
[INFO] [stderr]     |
[INFO] [stderr] 175 |             glfw::WindowEvent::Scroll(x_offset,y_offset)=>{
[INFO] [stderr]     |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fov`
[INFO] [stderr]    --> examples/camera.rs:154:5
[INFO] [stderr]     |
[INFO] [stderr] 154 |     fov :&mut f32,
[INFO] [stderr]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_fov`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/camera.rs:86:13
[INFO] [stderr]    |
[INFO] [stderr] 86 |         let mut img = image::open("../learn-opengl-rs/resources/textures/container.jpg").expect("load image failed");
[INFO] [stderr]    |             ----^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/camera.rs:121:13
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let mut yaw =-90.0;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/camera.rs:122:13
[INFO] [stderr]     |
[INFO] [stderr] 122 |         let mut pitch =0.0;
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/camera.rs:168:21
[INFO] [stderr]     |
[INFO] [stderr] 168 |                 let mut xoffset = xpos - *lastX;
[INFO] [stderr]     |                     ----^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/camera.rs:169:21
[INFO] [stderr]     |
[INFO] [stderr] 169 |                 let mut yoffset = *lastY - ypos; // reversed since y-coordinates go from bottom to top
[INFO] [stderr]     |                     ----^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cubeModelVertices` should have a snake case name
[INFO] [stderr]   --> examples/camera.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let cubeModelVertices:[f32;30] = [
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cube_model_vertices`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraE` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:110:17
[INFO] [stderr]     |
[INFO] [stderr] 110 |         let mut cameraE = tzzgl::camera::Camera{
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case: `camera_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastTime` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:116:17
[INFO] [stderr]     |
[INFO] [stderr] 116 |         let mut lastTime = glfw.get_time();
[INFO] [stderr]     |                 ^^^^^^^^ help: convert the identifier to snake case: `last_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastX` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:118:17
[INFO] [stderr]     |
[INFO] [stderr] 118 |         let mut lastX = 0.0;
[INFO] [stderr]     |                 ^^^^^ help: convert the identifier to snake case: `last_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastY` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:119:17
[INFO] [stderr]     |
[INFO] [stderr] 119 |         let mut lastY = 0.0;
[INFO] [stderr]     |                 ^^^^^ help: convert the identifier to snake case: `last_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstMouse` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:123:17
[INFO] [stderr]     |
[INFO] [stderr] 123 |         let mut firstMouse =true;
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `first_mouse`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cameraE` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 |     cameraE:&mut tzzgl::camera::Camera,
[INFO] [stderr]     |     ^^^^^^^ help: convert the identifier to snake case: `camera_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstMouse` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:151:5
[INFO] [stderr]     |
[INFO] [stderr] 151 |     firstMouse:&mut bool,
[INFO] [stderr]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `first_mouse`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastX` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:152:5
[INFO] [stderr]     |
[INFO] [stderr] 152 |     lastX:&mut f32,
[INFO] [stderr]     |     ^^^^^ help: convert the identifier to snake case: `last_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `lastY` should have a snake case name
[INFO] [stderr]    --> examples/camera.rs:153:5
[INFO] [stderr]     |
[INFO] [stderr] 153 |     lastY:&mut f32,
[INFO] [stderr]     |     ^^^^^ help: convert the identifier to snake case: `last_y`
[INFO] [stderr] 
[INFO] [stderr] error: build failed
[INFO] running `"docker" "inspect" "9462739ef51a0abb8dc3a502c2e43b2840cd9d49d6957be0b6b97e962f0f88b7"`
[INFO] running `"docker" "rm" "-f" "9462739ef51a0abb8dc3a502c2e43b2840cd9d49d6957be0b6b97e962f0f88b7"`
[INFO] [stdout] 9462739ef51a0abb8dc3a502c2e43b2840cd9d49d6957be0b6b97e962f0f88b7
