[INFO] cloning repository https://github.com/vaheqelyan/gl-event-reducer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vaheqelyan/gl-event-reducer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvaheqelyan%2Fgl-event-reducer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvaheqelyan%2Fgl-event-reducer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 495a50aa5e8319929cb3abd6fad8a362a5d23634
[INFO] checking vaheqelyan/gl-event-reducer against master#4008bbdf34b583ce44a467043aae3703afc0a76f for pr-129249-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvaheqelyan%2Fgl-event-reducer" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/vaheqelyan/gl-event-reducer
[INFO] finished tweaking git repo https://github.com/vaheqelyan/gl-event-reducer
[INFO] tweaked toml for git repo https://github.com/vaheqelyan/gl-event-reducer written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vaheqelyan/gl-event-reducer on toolchain 4008bbdf34b583ce44a467043aae3703afc0a76f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vaheqelyan/gl-event-reducer 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" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded paste v0.1.18
[INFO] [stderr]   Downloaded nalgebra-glm v0.3.0
[INFO] [stderr]   Downloaded simba v0.2.4
[INFO] [stderr]   Downloaded paste-impl v0.1.18
[INFO] [stderr]   Downloaded cmake v0.1.44
[INFO] [stderr]   Downloaded gl v0.14.0
[INFO] [stderr]   Downloaded fast-math v0.1.1
[INFO] [stderr]   Downloaded ieee754 v0.2.6
[INFO] [stderr]   Downloaded generic-array v0.13.2
[INFO] [stderr]   Downloaded num-rational v0.3.1
[INFO] [stderr]   Downloaded weezl v0.1.2
[INFO] [stderr]   Downloaded glfw v0.34.0
[INFO] [stderr]   Downloaded nalgebra v0.22.1
[INFO] [stderr]   Downloaded image v0.23.11
[INFO] [stderr]   Downloaded glfw-sys v3.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b
[INFO] running `Command { std: "docker" "start" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b" "/opt/rustwide/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b" "/opt/rustwide/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.80
[INFO] [stderr]    Compiling const_fn v0.4.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.0
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling cc v1.0.61
[INFO] [stderr]    Compiling miniz_oxide v0.4.3
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]    Compiling num-rational v0.3.1
[INFO] [stderr]     Checking weezl v0.1.2
[INFO] [stderr]     Checking adler v0.2.3
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking generic-array v0.13.2
[INFO] [stderr]     Checking bytemuck v1.4.1
[INFO] [stderr]     Checking gif v0.11.1
[INFO] [stderr]     Checking ieee754 v0.2.6
[INFO] [stderr]     Checking itertools v0.9.0
[INFO] [stderr]     Checking fast-math v0.1.1
[INFO] [stderr]    Compiling cmake v0.1.44
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking png v0.16.7
[INFO] [stderr]     Checking alga v0.8.2
[INFO] [stderr]    Compiling glfw-sys v3.3.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking paste v0.1.18
[INFO] [stderr]     Checking simba v0.2.4
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand v0.6.5
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking nalgebra v0.17.3
[INFO] [stderr]     Checking cgmath v0.17.0
[INFO] [stderr]     Checking rand_distr v0.2.2
[INFO] [stderr]     Checking jpeg-decoder v0.1.20
[INFO] [stderr]     Checking tiff v0.6.0
[INFO] [stderr]     Checking glfw v0.34.0
[INFO] [stderr]     Checking image v0.23.11
[INFO] [stderr]     Checking nalgebra v0.22.1
[INFO] [stderr]     Checking nalgebra-glm v0.3.0
[INFO] [stderr]     Checking gl-event-reducer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::cell::RefCell`
[INFO] [stdout]  --> src/boot.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use core::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/boot.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/boot.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Action`, `Context`, and `Key`
[INFO] [stdout]   --> src/boot.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use glfw::{Action, Context, Key};
[INFO] [stdout]    |            ^^^^^^  ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Overflow`
[INFO] [stdout]   --> src/boot.rs:71:58
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 use crate::style::{Dimension, Direction, Display, Overflow, Style};
[INFO] [stdout]    |                                                          ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/gl_core.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Element`
[INFO] [stdout]  --> src/layout.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::low_dom::{Element, ElementMetaData};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/layout.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::style::{Dimension, Direction, Display};
[INFO] [stdout]   |                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_max` and `clamp_min`
[INFO] [stdout]  --> src/utils.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{clamp_max, clamp_min};
[INFO] [stdout]   |                  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/utils.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::raw::c_void`
[INFO] [stdout]   --> src/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::os::raw::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boot::Cursor`
[INFO] [stdout]   --> src/utils.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::boot::Cursor;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::font::Font`
[INFO] [stdout]   --> src/utils.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::font::Font;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::resource::Resource`
[INFO] [stdout]   --> src/utils.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::resource::Resource;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cell::RefCell`
[INFO] [stdout]   --> src/utils.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use core::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/utils.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/utils.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cgmath::Matrix`
[INFO] [stdout]  --> src/window.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use cgmath::Matrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]  --> src/window.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, Key};
[INFO] [stdout]   |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sender` and `channel`
[INFO] [stdout]  --> src/window.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gl::types::*`
[INFO] [stdout]  --> src/window.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use gl::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Cell`
[INFO] [stdout]   --> src/window.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::Cell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/window.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]   --> src/window.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ffi::CString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/window.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::raw::c_void`
[INFO] [stdout]   --> src/window.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::raw::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/window.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/window.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boot::Cursor`
[INFO] [stdout]  --> src/div/div_element.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::boot::Cursor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::font::Font`
[INFO] [stdout]  --> src/div/div_element.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::font::Font;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_max`, `clamp_min`, `clamp`, and `sign`
[INFO] [stdout]  --> src/div/div_element.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{clamp, clamp_max, clamp_min, sign};
[INFO] [stdout]   |                  ^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/dom.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::style::{Dimension, Display, Overflow, Style};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_min` and `clamp`
[INFO] [stdout]  --> src/dom_db.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_traits::{clamp, clamp_min};
[INFO] [stdout]   |                  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                        ^                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -                 size = (size + (measure.advance * 0.5));
[INFO] [stdout] 30 +                 size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/input/input_element.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |             (original - container)
[INFO] [stdout]    |             ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -             (original - container)
[INFO] [stdout] 44 +             original - container 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:58:24
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                        ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 58 -                 size = (size + (measure.advance * 0.5));
[INFO] [stdout] 58 +                 size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 87 -                     size = (size + (measure.advance * 0.5));
[INFO] [stdout] 87 +                     size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |                     size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                            ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -                     size = (size + (measure.advance * 0.5));
[INFO] [stdout] 118 +                     size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 145 -             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout] 145 +             let char_size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout] 179 +             let char_size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:186:34
[INFO] [stdout]     |
[INFO] [stdout] 186 |                     front_size = (front_size + (measure.advance * 0.5));
[INFO] [stdout]     |                                  ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 186 -                     front_size = (front_size + (measure.advance * 0.5));
[INFO] [stdout] 186 +                     front_size = front_size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:188:29
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 back_size = (back_size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 back_size = (back_size + (measure.advance * 0.5));
[INFO] [stdout] 188 +                 back_size = back_size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/input/input_element.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 (original - container)
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 202 -                 (original - container)
[INFO] [stdout] 202 +                 original - container 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dom_db::DomDB`
[INFO] [stdout]  --> src/render.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::dom_db::DomDB;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LowDom`
[INFO] [stdout]  --> src/render.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::low_dom::{Element, LowDom};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block1`
[INFO] [stdout]    --> src/boot.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let block1 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block2`
[INFO] [stdout]    --> src/boot.rs:111:21
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let block2 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block3`
[INFO] [stdout]    --> src/boot.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let block3 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block4`
[INFO] [stdout]    --> src/boot.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 let block4 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/boot.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |             _ => (),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/boot.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             EventFlow::Init(width, height) => {
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 177 |             EventFlow::Type(key) => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 188 |             EventFlow::Backspace => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             EventFlow::Left => {
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 268 |             _ => (),
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gl`
[INFO] [stdout]    --> src/boot.rs:170:56
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn dispatch_event(&mut self, event: EventFlow, gl: &mut Gl, resource: &mut Resource) {
[INFO] [stdout]     |                                                        ^^ help: if this is intentional, prefix it with an underscore: `_gl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]    --> src/boot.rs:170:69
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn dispatch_event(&mut self, event: EventFlow, gl: &mut Gl, resource: &mut Resource) {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/boot.rs:177:29
[INFO] [stdout]     |
[INFO] [stdout] 177 |             EventFlow::Type(key) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/gl_core.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let p: *const i32 = ptr::null();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/gl_core.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         for i in 0..32_000 / 32 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/gl_core.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let map = resource.get();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/gl_core.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (key, value) in resource.get().iter() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/layout.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut result = &mut dom_db.div_data.get_mut(&0).unwrap().result;
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound`
[INFO] [stdout]   --> src/layout.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         bound: f32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_id`
[INFO] [stdout]    --> src/layout.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         parent_id: usize,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound_x`
[INFO] [stdout]    --> src/layout.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let bound_x = desc.result.x;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bound_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound_y`
[INFO] [stdout]    --> src/layout.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let bound_y = desc.result.y;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bound_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value passed to `far_y` is never read
[INFO] [stdout]    --> src/layout.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         mut far_y: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]     --> src/resource.rs:1101:18
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             for (key, file) in &mut self.map {
[INFO] [stdout]      |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:111:49
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) fn c(u: f32, v: f32, w: f32, h: f32, x: bool) -> (f32, f32) {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/window.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bah`
[INFO] [stdout]   --> src/window.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let bah = &self.boot;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_bah`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]    --> src/window.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         window: &mut glfw::Window,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]    --> src/window.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 glfw::WindowEvent::Key(key, scancode, keymod, mods) => match key {
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mods`
[INFO] [stdout]    --> src/window.rs:140:63
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 glfw::WindowEvent::Key(key, scancode, keymod, mods) => match key {
[INFO] [stdout]     |                                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_mods`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `btn`
[INFO] [stdout]    --> src/window.rs:167:48
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 glfw::WindowEvent::MouseButton(btn, action, ..) => match action {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_btn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/window.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 glfw::WindowEvent::Scroll(x, y) => {}
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/window.rs:184:46
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 glfw::WindowEvent::Scroll(x, y) => {}
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> src/dom_db.rs:30:49
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn register_input(&mut self, id: usize, style: Style) {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/input/input_element.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn input(&mut self, value: char, offset: usize, container: f32, font: &mut Font) {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_cursor`
[INFO] [stdout]    --> src/input/input_element.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let new_cursor = clamp_min(self.cursor - 1, 0);
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original`
[INFO] [stdout]    --> src/input/input_element.rs:122:17
[INFO] [stdout]     |
[INFO] [stdout] 122 |             let original = size;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `container`
[INFO] [stdout]    --> src/input/input_element.rs:136:29
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_container`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/input/input_element.rs:136:53
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                                                     ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/input/input_element.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let mut original = self.focus_range + front_size;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/input/input_element.rs:167:54
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn select(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen_width`
[INFO] [stdout]    --> src/input/input_element.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let screen_width: f32 = 300.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/low_dom.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |             let mut meta_child = self.map.get_mut(&element).unwrap();
[INFO] [stdout]    |                 ----^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/low_dom.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let mut meta_child = self.map.get_mut(&element).unwrap();
[INFO] [stdout]    |                 ----^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]   --> src/render.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         resource: &mut Resource,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `focus_id`
[INFO] [stdout]   --> src/render.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         focus_id: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_focus_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scroll_papa`
[INFO] [stdout]   --> src/render.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let scroll_papa = dom_db.div_data.get(&meta_data.belong_to_screen).unwrap();
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scroll_papa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pointerdown`, `pointermove`, and `pointerup` are never read
[INFO] [stdout]   --> src/boot.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct EventState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 35 |     pointerdown: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     pointermove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     pointerup: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCR_WIDTH` is never used
[INFO] [stdout]   --> src/gl_core.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const SCR_WIDTH: u32 = 300;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCR_HEIGHT` is never used
[INFO] [stdout]   --> src/gl_core.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SCR_HEIGHT: u32 = 616;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `X` is never used
[INFO] [stdout]   --> src/gl_core.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const X: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Y` is never used
[INFO] [stdout]   --> src/gl_core.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const Y: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/gl_core.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const WIDTH: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/gl_core.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HEIGHT: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/layout.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Layout {
[INFO] [stdout]    |                   ------ fields in this struct
[INFO] [stdout] 12 |     width: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     height: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Layout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `viewport` and `parent_bound` are never used
[INFO] [stdout]   --> src/layout.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Layout {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(crate) fn viewport(&mut self, width: f32, height: f32, dom_db: &mut DomDB) {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub(crate) fn parent_bound(
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vec` and `id` are never read
[INFO] [stdout]   --> src/resource.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Resource {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 19 |     vec: Vec<File>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     map: HashMap<String, File>,
[INFO] [stdout] 21 |     id: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Resource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RGB_FACTOR` is never used
[INFO] [stdout]   --> src/window.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RGB_FACTOR: f32 = 1.0 / 255.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `X` is never used
[INFO] [stdout]   --> src/window.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const X: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Y` is never used
[INFO] [stdout]   --> src/window.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const Y: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/window.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const WIDTH: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/window.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEIGHT: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `far_y` is never read
[INFO] [stdout]   --> src/div/div_element.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DivResult {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub far_y: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DivResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input` is never used
[INFO] [stdout]   --> src/dom.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Dom {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn input(&mut self, style: Style) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input_data` and `font` are never read
[INFO] [stdout]   --> src/dom_db.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct DomDB {
[INFO] [stdout]    |                   ----- fields in this struct
[INFO] [stdout] 12 |     pub input_data: HashMap<usize, Input>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 13 |     pub div_data: HashMap<usize, Div>,
[INFO] [stdout] 14 |     pub font: Font,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/dom_db.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DomDB {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn register_input(&mut self, id: usize, style: Style) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn input(&mut self, value: char, offset: usize, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn cursor_right(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn cursor_left(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn backspace(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn focus(&mut self, id: &usize, container: f32, x: f32, y: f32, cursor: &Cursor) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn select(&mut self, id: &usize, container: f32, x: f32, y: f32, cursor: &Cursor) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn get_input(&self, id: usize) -> &Input {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/input/input_element.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Input {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout]  7 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub cursor: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  9 |     pub cursor_pos: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 10 |     pub push_left: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 11 |     pub stop_backspace: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub cache_len: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 13 |     pub focus_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |     pub focus_range: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `input`, `cursor_right`, `cursor_left`, `backspace`, `focus`, and `select` are never used
[INFO] [stdout]    --> src/input/input_element.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Input {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  18 |     pub fn input(&mut self, value: char, offset: usize, container: f32, font: &mut Font) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn cursor_right(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn cursor_left(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn backspace(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn select(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Input` and `Scroll` are never constructed
[INFO] [stdout]  --> src/low_dom.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Element {
[INFO] [stdout]   |          ------- variants in this enum
[INFO] [stdout] 5 |     Input,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     Div,
[INFO] [stdout] 7 |     Scroll,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Element` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]   --> src/low_dom.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl LowDom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn debug(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `originX` should have a snake case name
[INFO] [stdout]  --> src/font.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub originX: f32,
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `origin_x`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `originY` should have a snake case name
[INFO] [stdout]  --> src/font.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub originY: f32,
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `origin_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cell::RefCell`
[INFO] [stdout]  --> src/boot.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use core::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/boot.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/boot.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Action`, `Context`, and `Key`
[INFO] [stdout]   --> src/boot.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | use glfw::{Action, Context, Key};
[INFO] [stdout]    |            ^^^^^^  ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Overflow`
[INFO] [stdout]   --> src/boot.rs:71:58
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 use crate::style::{Dimension, Direction, Display, Overflow, Style};
[INFO] [stdout]    |                                                          ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/gl_core.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Element`
[INFO] [stdout]  --> src/layout.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::low_dom::{Element, ElementMetaData};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/layout.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::style::{Dimension, Direction, Display};
[INFO] [stdout]   |                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_max` and `clamp_min`
[INFO] [stdout]  --> src/utils.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{clamp_max, clamp_min};
[INFO] [stdout]   |                  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/utils.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::raw::c_void`
[INFO] [stdout]   --> src/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::os::raw::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boot::Cursor`
[INFO] [stdout]   --> src/utils.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::boot::Cursor;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::font::Font`
[INFO] [stdout]   --> src/utils.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::font::Font;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::resource::Resource`
[INFO] [stdout]   --> src/utils.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::resource::Resource;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cell::RefCell`
[INFO] [stdout]   --> src/utils.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use core::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/utils.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/utils.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cgmath::Matrix`
[INFO] [stdout]  --> src/window.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use cgmath::Matrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]  --> src/window.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glfw::{Action, Context, Key};
[INFO] [stdout]   |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sender` and `channel`
[INFO] [stdout]  --> src/window.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gl::types::*`
[INFO] [stdout]  --> src/window.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use gl::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Cell`
[INFO] [stdout]   --> src/window.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::Cell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/window.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]   --> src/window.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ffi::CString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/window.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::raw::c_void`
[INFO] [stdout]   --> src/window.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::raw::c_void;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/window.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/window.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::boot::Cursor`
[INFO] [stdout]  --> src/div/div_element.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::boot::Cursor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::font::Font`
[INFO] [stdout]  --> src/div/div_element.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::font::Font;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_max`, `clamp_min`, `clamp`, and `sign`
[INFO] [stdout]  --> src/div/div_element.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{clamp, clamp_max, clamp_min, sign};
[INFO] [stdout]   |                  ^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/dom.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::style::{Dimension, Display, Overflow, Style};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `clamp_min` and `clamp`
[INFO] [stdout]  --> src/dom_db.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_traits::{clamp, clamp_min};
[INFO] [stdout]   |                  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                        ^                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -                 size = (size + (measure.advance * 0.5));
[INFO] [stdout] 30 +                 size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/input/input_element.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |             (original - container)
[INFO] [stdout]    |             ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -             (original - container)
[INFO] [stdout] 44 +             original - container 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:58:24
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                        ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 58 -                 size = (size + (measure.advance * 0.5));
[INFO] [stdout] 58 +                 size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/input/input_element.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     size = (size + (measure.advance * 0.5));
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 87 -                     size = (size + (measure.advance * 0.5));
[INFO] [stdout] 87 +                     size = size + (measure.advance * 0.5) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |                     size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                            ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -                     size = (size + (measure.advance * 0.5));
[INFO] [stdout] 118 +                     size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 145 -             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout] 145 +             let char_size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -             let char_size = (size + (measure.advance * 0.5));
[INFO] [stdout] 179 +             let char_size = size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:186:34
[INFO] [stdout]     |
[INFO] [stdout] 186 |                     front_size = (front_size + (measure.advance * 0.5));
[INFO] [stdout]     |                                  ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 186 -                     front_size = (front_size + (measure.advance * 0.5));
[INFO] [stdout] 186 +                     front_size = front_size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/input/input_element.rs:188:29
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 back_size = (back_size + (measure.advance * 0.5));
[INFO] [stdout]     |                             ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 back_size = (back_size + (measure.advance * 0.5));
[INFO] [stdout] 188 +                 back_size = back_size + (measure.advance * 0.5) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/input/input_element.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 (original - container)
[INFO] [stdout]     |                 ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 202 -                 (original - container)
[INFO] [stdout] 202 +                 original - container 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dom_db::DomDB`
[INFO] [stdout]  --> src/render.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::dom_db::DomDB;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LowDom`
[INFO] [stdout]  --> src/render.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::low_dom::{Element, LowDom};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block1`
[INFO] [stdout]    --> src/boot.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let block1 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block2`
[INFO] [stdout]    --> src/boot.rs:111:21
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let block2 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block3`
[INFO] [stdout]    --> src/boot.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let block3 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block4`
[INFO] [stdout]    --> src/boot.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 let block4 = self.dom.div(Style {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_block4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/boot.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |             _ => (),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/boot.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             EventFlow::Init(width, height) => {
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 177 |             EventFlow::Type(key) => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 188 |             EventFlow::Backspace => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             EventFlow::Left => {
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 268 |             _ => (),
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gl`
[INFO] [stdout]    --> src/boot.rs:170:56
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn dispatch_event(&mut self, event: EventFlow, gl: &mut Gl, resource: &mut Resource) {
[INFO] [stdout]     |                                                        ^^ help: if this is intentional, prefix it with an underscore: `_gl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]    --> src/boot.rs:170:69
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn dispatch_event(&mut self, event: EventFlow, gl: &mut Gl, resource: &mut Resource) {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/boot.rs:177:29
[INFO] [stdout]     |
[INFO] [stdout] 177 |             EventFlow::Type(key) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/gl_core.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let p: *const i32 = ptr::null();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/gl_core.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         for i in 0..32_000 / 32 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/gl_core.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let map = resource.get();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/gl_core.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (key, value) in resource.get().iter() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/layout.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut result = &mut dom_db.div_data.get_mut(&0).unwrap().result;
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound`
[INFO] [stdout]   --> src/layout.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         bound: f32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_id`
[INFO] [stdout]    --> src/layout.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         parent_id: usize,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound_x`
[INFO] [stdout]    --> src/layout.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let bound_x = desc.result.x;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bound_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bound_y`
[INFO] [stdout]    --> src/layout.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let bound_y = desc.result.y;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bound_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value passed to `far_y` is never read
[INFO] [stdout]    --> src/layout.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         mut far_y: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]     --> src/resource.rs:1101:18
[INFO] [stdout]      |
[INFO] [stdout] 1101 |             for (key, file) in &mut self.map {
[INFO] [stdout]      |                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/utils.rs:111:49
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) fn c(u: f32, v: f32, w: f32, h: f32, x: bool) -> (f32, f32) {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/window.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bah`
[INFO] [stdout]   --> src/window.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let bah = &self.boot;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_bah`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]    --> src/window.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         window: &mut glfw::Window,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scancode`
[INFO] [stdout]    --> src/window.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 glfw::WindowEvent::Key(key, scancode, keymod, mods) => match key {
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mods`
[INFO] [stdout]    --> src/window.rs:140:63
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 glfw::WindowEvent::Key(key, scancode, keymod, mods) => match key {
[INFO] [stdout]     |                                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_mods`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `btn`
[INFO] [stdout]    --> src/window.rs:167:48
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 glfw::WindowEvent::MouseButton(btn, action, ..) => match action {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_btn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/window.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 glfw::WindowEvent::Scroll(x, y) => {}
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/window.rs:184:46
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 glfw::WindowEvent::Scroll(x, y) => {}
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> src/dom_db.rs:30:49
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn register_input(&mut self, id: usize, style: Style) {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/input/input_element.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn input(&mut self, value: char, offset: usize, container: f32, font: &mut Font) {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_cursor`
[INFO] [stdout]    --> src/input/input_element.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let new_cursor = clamp_min(self.cursor - 1, 0);
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original`
[INFO] [stdout]    --> src/input/input_element.rs:122:17
[INFO] [stdout]     |
[INFO] [stdout] 122 |             let original = size;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `container`
[INFO] [stdout]    --> src/input/input_element.rs:136:29
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_container`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/input/input_element.rs:136:53
[INFO] [stdout]     |
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                                                     ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/input/input_element.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let mut original = self.focus_range + front_size;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/input/input_element.rs:167:54
[INFO] [stdout]     |
[INFO] [stdout] 167 |     pub fn select(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen_width`
[INFO] [stdout]    --> src/input/input_element.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let screen_width: f32 = 300.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/low_dom.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |             let mut meta_child = self.map.get_mut(&element).unwrap();
[INFO] [stdout]    |                 ----^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/low_dom.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let mut meta_child = self.map.get_mut(&element).unwrap();
[INFO] [stdout]    |                 ----^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]   --> src/render.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         resource: &mut Resource,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `focus_id`
[INFO] [stdout]   --> src/render.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         focus_id: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_focus_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scroll_papa`
[INFO] [stdout]   --> src/render.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let scroll_papa = dom_db.div_data.get(&meta_data.belong_to_screen).unwrap();
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scroll_papa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pointerdown`, `pointermove`, and `pointerup` are never read
[INFO] [stdout]   --> src/boot.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct EventState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 35 |     pointerdown: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     pointermove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     pointerup: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCR_WIDTH` is never used
[INFO] [stdout]   --> src/gl_core.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const SCR_WIDTH: u32 = 300;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCR_HEIGHT` is never used
[INFO] [stdout]   --> src/gl_core.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SCR_HEIGHT: u32 = 616;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `X` is never used
[INFO] [stdout]   --> src/gl_core.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const X: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Y` is never used
[INFO] [stdout]   --> src/gl_core.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const Y: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/gl_core.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const WIDTH: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/gl_core.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HEIGHT: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]   --> src/layout.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Layout {
[INFO] [stdout]    |                   ------ fields in this struct
[INFO] [stdout] 12 |     width: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 13 |     height: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Layout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `viewport` and `parent_bound` are never used
[INFO] [stdout]   --> src/layout.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Layout {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(crate) fn viewport(&mut self, width: f32, height: f32, dom_db: &mut DomDB) {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub(crate) fn parent_bound(
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vec` and `id` are never read
[INFO] [stdout]   --> src/resource.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Resource {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 19 |     vec: Vec<File>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     map: HashMap<String, File>,
[INFO] [stdout] 21 |     id: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Resource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RGB_FACTOR` is never used
[INFO] [stdout]   --> src/window.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RGB_FACTOR: f32 = 1.0 / 255.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `X` is never used
[INFO] [stdout]   --> src/window.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const X: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Y` is never used
[INFO] [stdout]   --> src/window.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const Y: f32 = 0.0;
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/window.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const WIDTH: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/window.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEIGHT: f32 = 300.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `far_y` is never read
[INFO] [stdout]   --> src/div/div_element.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DivResult {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub far_y: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DivResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input` is never used
[INFO] [stdout]   --> src/dom.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Dom {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn input(&mut self, style: Style) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input_data` and `font` are never read
[INFO] [stdout]   --> src/dom_db.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct DomDB {
[INFO] [stdout]    |                   ----- fields in this struct
[INFO] [stdout] 12 |     pub input_data: HashMap<usize, Input>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 13 |     pub div_data: HashMap<usize, Div>,
[INFO] [stdout] 14 |     pub font: Font,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/dom_db.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DomDB {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn register_input(&mut self, id: usize, style: Style) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn input(&mut self, value: char, offset: usize, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn cursor_right(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn cursor_left(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn backspace(&mut self, id: &usize, container: f32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn focus(&mut self, id: &usize, container: f32, x: f32, y: f32, cursor: &Cursor) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn select(&mut self, id: &usize, container: f32, x: f32, y: f32, cursor: &Cursor) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn get_input(&self, id: usize) -> &Input {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/input/input_element.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Input {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout]  7 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub cursor: usize,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  9 |     pub cursor_pos: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 10 |     pub push_left: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 11 |     pub stop_backspace: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub cache_len: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 13 |     pub focus_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 14 |     pub focus_range: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `input`, `cursor_right`, `cursor_left`, `backspace`, `focus`, and `select` are never used
[INFO] [stdout]    --> src/input/input_element.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Input {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  18 |     pub fn input(&mut self, value: char, offset: usize, container: f32, font: &mut Font) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn cursor_right(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn cursor_left(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn backspace(&mut self, container: f32, font: &Font) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn focus(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn select(&mut self, container: f32, x: f32, y: f32, cursor: &Cursor, font: &Font) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Input` and `Scroll` are never constructed
[INFO] [stdout]  --> src/low_dom.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Element {
[INFO] [stdout]   |          ------- variants in this enum
[INFO] [stdout] 5 |     Input,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     Div,
[INFO] [stdout] 7 |     Scroll,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Element` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]   --> src/low_dom.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl LowDom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn debug(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `originX` should have a snake case name
[INFO] [stdout]  --> src/font.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub originX: f32,
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `origin_x`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `originY` should have a snake case name
[INFO] [stdout]  --> src/font.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub originY: f32,
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `origin_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.24s
[INFO] running `Command { std: "docker" "inspect" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b", kill_on_drop: false }`
[INFO] [stdout] 299cccd0e9c7058516e17478e2c81e083c7793003b29e1d99e8720598818782b
