[INFO] cloning repository https://github.com/jellytech3438/csp-algo-sim
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jellytech3438/csp-algo-sim" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjellytech3438%2Fcsp-algo-sim", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjellytech3438%2Fcsp-algo-sim'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4343f4534f169a1a99b35e3dca469e444a786685
[INFO] checking jellytech3438/csp-algo-sim against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjellytech3438%2Fcsp-algo-sim" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jellytech3438/csp-algo-sim
[INFO] finished tweaking git repo https://github.com/jellytech3438/csp-algo-sim
[INFO] tweaked toml for git repo https://github.com/jellytech3438/csp-algo-sim written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jellytech3438/csp-algo-sim on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jellytech3438/csp-algo-sim already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wayland-cursor v0.28.6
[INFO] [stderr]   Downloaded wayland-sys v0.28.6
[INFO] [stderr]   Downloaded wayland-commons v0.28.6
[INFO] [stderr]   Downloaded wayland-scanner v0.28.6
[INFO] [stderr]   Downloaded palette_derive v0.5.0
[INFO] [stderr]   Downloaded epi v0.15.0
[INFO] [stderr]   Downloaded rand_xorshift v0.2.0
[INFO] [stderr]   Downloaded nannou_mesh v0.18.0
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.1
[INFO] [stderr]   Downloaded atomic_refcell v0.1.11
[INFO] [stderr]   Downloaded thiserror-impl v1.0.48
[INFO] [stderr]   Downloaded pennereq v0.3.1
[INFO] [stderr]   Downloaded sid v0.6.1
[INFO] [stderr]   Downloaded xdg v2.5.2
[INFO] [stderr]   Downloaded emath v0.15.0
[INFO] [stderr]   Downloaded xml-rs v0.8.17
[INFO] [stderr]   Downloaded lyon_algorithms v0.17.7
[INFO] [stderr]   Downloaded lyon_path v0.17.7
[INFO] [stderr]   Downloaded ordered-float v1.1.1
[INFO] [stderr]   Downloaded d3d12 v0.4.1
[INFO] [stderr]   Downloaded nannou_core v0.18.0
[INFO] [stderr]   Downloaded wgpu-types v0.11.0
[INFO] [stderr]   Downloaded wayland-client v0.28.6
[INFO] [stderr]   Downloaded nannou_wgpu v0.18.0
[INFO] [stderr]   Downloaded rusttype v0.8.3
[INFO] [stderr]   Downloaded profiling v1.0.10
[INFO] [stderr]   Downloaded lyon_geom v0.17.7
[INFO] [stderr]   Downloaded noise v0.7.0
[INFO] [stderr]   Downloaded thiserror v1.0.48
[INFO] [stderr]   Downloaded euclid v0.22.9
[INFO] [stderr]   Downloaded palette v0.5.0
[INFO] [stderr]   Downloaded wgpu-core v0.11.3
[INFO] [stderr]   Downloaded winnow v0.5.15
[INFO] [stderr]   Downloaded egui v0.15.0
[INFO] [stderr]   Downloaded lyon_tessellation v0.17.10
[INFO] [stderr]   Downloaded wgpu-hal v0.11.5
[INFO] [stderr]   Downloaded glam v0.17.3
[INFO] [stderr]   Downloaded wgpu v0.11.1
[INFO] [stderr]   Downloaded nannou v0.18.1
[INFO] [stderr]   Downloaded memchr v2.6.3
[INFO] [stderr]   Downloaded winit v0.25.0
[INFO] [stderr]   Downloaded wayland-protocols v0.28.6
[INFO] [stderr]   Downloaded egui_wgpu_backend v0.14.0
[INFO] [stderr]   Downloaded ash v0.33.3+1.2.191
[INFO] [stderr]   Downloaded naga v0.7.3
[INFO] [stderr]   Downloaded find_folder v0.3.0
[INFO] [stderr]   Downloaded lyon v0.17.10
[INFO] [stderr]   Downloaded mio-misc v1.2.2
[INFO] [stderr]   Downloaded notosans v0.1.0
[INFO] [stderr]   Downloaded metal v0.23.1
[INFO] [stderr]   Downloaded epaint v0.15.0
[INFO] [stderr]   Downloaded nannou_egui v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4911844b648e1da875bea415d7ea83c450f17a09effb451a7797fa28cb3323a6
[INFO] running `Command { std: "docker" "start" "-a" "4911844b648e1da875bea415d7ea83c450f17a09effb451a7797fa28cb3323a6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4911844b648e1da875bea415d7ea83c450f17a09effb451a7797fa28cb3323a6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4911844b648e1da875bea415d7ea83c450f17a09effb451a7797fa28cb3323a6", kill_on_drop: false }`
[INFO] [stdout] 4911844b648e1da875bea415d7ea83c450f17a09effb451a7797fa28cb3323a6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3bbb122a832a51112db9ce7e70f51070a49b58a08297d80d01d38900b77be9bc
[INFO] running `Command { std: "docker" "start" "-a" "3bbb122a832a51112db9ce7e70f51070a49b58a08297d80d01d38900b77be9bc", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]     Checking smallvec v1.11.0
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling xml-rs v0.8.17
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking memchr v2.6.3
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking libloading v0.8.0
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling serde v1.0.188
[INFO] [stderr]    Compiling thiserror v1.0.48
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.1
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling futures-task v0.3.28
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]     Checking gpu-alloc v0.5.4
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]    Compiling wgpu-core v0.11.3
[INFO] [stderr]     Checking ash v0.33.3+1.2.191
[INFO] [stderr]     Checking wgpu-types v0.11.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]     Checking glow v0.11.2
[INFO] [stderr]     Checking futures-sink v0.3.28
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking profiling v1.0.10
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking ttf-parser v0.19.1
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking inplace_it v0.3.5
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking renderdoc-sys v0.7.1
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]    Compiling syn v2.0.31
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]    Compiling palette v0.5.0
[INFO] [stderr]     Checking copyless v0.1.5
[INFO] [stderr]     Checking walkdir v2.4.0
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking euclid v0.22.9
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking lyon_geom v0.17.7
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking owned_ttf_parser v0.15.2
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking lyon_path v0.17.7
[INFO] [stderr]     Checking indexmap v1.9.3
[INFO] [stderr]     Checking gpu-descriptor v0.2.3
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]     Checking atomic_refcell v0.1.11
[INFO] [stderr]     Checking emath v0.15.0
[INFO] [stderr]     Checking xdg v2.5.2
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking owned_ttf_parser v0.19.0
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking ab_glyph v0.2.21
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking epaint v0.15.0
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking sid v0.6.1
[INFO] [stderr]     Checking float_next_after v0.1.5
[INFO] [stderr]    Compiling serde_json v1.0.105
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]     Checking lyon_algorithms v0.17.7
[INFO] [stderr]     Checking lyon_tessellation v0.17.10
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand_xorshift v0.2.0
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]     Checking mio-misc v1.2.2
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking pennereq v0.3.1
[INFO] [stderr]     Checking egui v0.15.0
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking notosans v0.1.0
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking lyon v0.17.10
[INFO] [stderr]    Compiling palette_derive v0.5.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.48
[INFO] [stderr]    Compiling serde_derive v1.0.188
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]     Checking epi v0.15.0
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking naga v0.7.3
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking noise v0.7.0
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking futures v0.3.28
[INFO] [stderr]     Checking wgpu-hal v0.11.5
[INFO] [stderr]     Checking glam v0.17.3
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking nannou_core v0.18.0
[INFO] [stderr]     Checking nannou_mesh v0.18.0
[INFO] [stderr]     Checking wgpu v0.11.1
[INFO] [stderr]     Checking nannou_wgpu v0.18.0
[INFO] [stderr]     Checking egui_wgpu_backend v0.14.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking nannou v0.18.1
[INFO] [stderr]     Checking nannou_egui v0.5.0
[INFO] [stderr]     Checking csp_nannou v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `MEDIUM`
[INFO] [stdout]  --> src/main.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cassowary::strength::{MEDIUM, REQUIRED, STRONG, WEAK};
[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 imports: `Egui` and `egui`
[INFO] [stdout]  --> src/main.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use nannou_egui::{self, egui, Egui};
[INFO] [stdout]   |                         ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::ops::Index;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]   --> src/main.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LayoutVecType`
[INFO] [stdout]  --> src/event/view.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::layout::{LayoutVecType, MyLayout};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rect::MyRect`
[INFO] [stdout]  --> src/event/view.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::rect::MyRect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/event/view.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WEAK`
[INFO] [stdout]  --> src/layout/layout.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cassowary::strength::{REQUIRED, WEAK};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Term`
[INFO] [stdout]  --> src/layout/layout.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cassowary::{Expression, Solver, Term};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou_egui::egui::math::Numeric`
[INFO] [stdout]  --> src/layout/layout.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nannou_egui::egui::math::Numeric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou_egui::egui::plot::Points`
[INFO] [stdout]  --> src/layout/layout.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nannou_egui::egui::plot::Points;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/layout/layout.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]   --> src/layout/layout.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ops::{Deref, DerefMut},
[INFO] [stdout]    |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:504:32
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let expression = match (*self.nodes[0].as_ref().borrow()) {
[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] 504 -         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout] 504 +         let expression = match *self.nodes[0].as_ref().borrow()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:563:32
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout]     |                                ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 563 -         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout] 563 +         let expression = match *self.nodes[0].as_ref().borrow()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:913:52
[INFO] [stdout]     |
[INFO] [stdout] 913 |                         let mut new_window = match (reference == *window) {
[INFO] [stdout]     |                                                    ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 913 -                         let mut new_window = match (reference == *window) {
[INFO] [stdout] 913 +                         let mut new_window = match reference == *window  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:928:52
[INFO] [stdout]     |
[INFO] [stdout] 928 |                         let mut new_window = match (reference == *window) {
[INFO] [stdout]     |                                                    ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 928 -                         let mut new_window = match (reference == *window) {
[INFO] [stdout] 928 +                         let mut new_window = match reference == *window  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MEDIUM`, `REQUIRED`, `STRONG`, and `WEAK`
[INFO] [stdout]  --> src/rect/myrect.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cassowary::strength::{MEDIUM, REQUIRED, STRONG, WEAK};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::PartialConstraint`
[INFO] [stdout]  --> src/rect/myrect.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cassowary::PartialConstraint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::RelationalOperator`
[INFO] [stdout]  --> src/rect/myrect.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use cassowary::RelationalOperator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::Solver`
[INFO] [stdout]  --> src/rect/myrect.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use cassowary::Solver;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::WeightedRelation`
[INFO] [stdout]  --> src/rect/myrect.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cassowary::WeightedRelation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::draw::primitive::Rect`
[INFO] [stdout]  --> src/rect/myrect.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use nannou::draw::primitive::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/rect/myrect.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/rect/myrect.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]   --> src/rect/myrect.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::DerefMut;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/rect/myrect.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MEDIUM`
[INFO] [stdout]  --> src/main.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cassowary::strength::{MEDIUM, REQUIRED, STRONG, WEAK};
[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 imports: `Egui` and `egui`
[INFO] [stdout]  --> src/main.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use nannou_egui::{self, egui, Egui};
[INFO] [stdout]   |                         ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::ops::Index;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]   --> src/main.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LayoutVecType`
[INFO] [stdout]  --> src/event/view.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::layout::{LayoutVecType, MyLayout};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rect::MyRect`
[INFO] [stdout]  --> src/event/view.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::rect::MyRect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/event/view.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WEAK`
[INFO] [stdout]  --> src/layout/layout.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cassowary::strength::{REQUIRED, WEAK};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Term`
[INFO] [stdout]  --> src/layout/layout.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cassowary::{Expression, Solver, Term};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou_egui::egui::math::Numeric`
[INFO] [stdout]  --> src/layout/layout.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nannou_egui::egui::math::Numeric;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou_egui::egui::plot::Points`
[INFO] [stdout]  --> src/layout/layout.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nannou_egui::egui::plot::Points;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/layout/layout.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]   --> src/layout/layout.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ops::{Deref, DerefMut},
[INFO] [stdout]    |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:504:32
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let expression = match (*self.nodes[0].as_ref().borrow()) {
[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] 504 -         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout] 504 +         let expression = match *self.nodes[0].as_ref().borrow()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:563:32
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout]     |                                ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 563 -         let expression = match (*self.nodes[0].as_ref().borrow()) {
[INFO] [stdout] 563 +         let expression = match *self.nodes[0].as_ref().borrow()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:913:52
[INFO] [stdout]     |
[INFO] [stdout] 913 |                         let mut new_window = match (reference == *window) {
[INFO] [stdout]     |                                                    ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 913 -                         let mut new_window = match (reference == *window) {
[INFO] [stdout] 913 +                         let mut new_window = match reference == *window  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/layout/layout.rs:928:52
[INFO] [stdout]     |
[INFO] [stdout] 928 |                         let mut new_window = match (reference == *window) {
[INFO] [stdout]     |                                                    ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 928 -                         let mut new_window = match (reference == *window) {
[INFO] [stdout] 928 +                         let mut new_window = match reference == *window  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MEDIUM`, `REQUIRED`, `STRONG`, and `WEAK`
[INFO] [stdout]  --> src/rect/myrect.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cassowary::strength::{MEDIUM, REQUIRED, STRONG, WEAK};
[INFO] [stdout]   |                           ^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::PartialConstraint`
[INFO] [stdout]  --> src/rect/myrect.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cassowary::PartialConstraint;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::RelationalOperator`
[INFO] [stdout]  --> src/rect/myrect.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use cassowary::RelationalOperator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::Solver`
[INFO] [stdout]  --> src/rect/myrect.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use cassowary::Solver;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::WeightedRelation`
[INFO] [stdout]  --> src/rect/myrect.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cassowary::WeightedRelation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::draw::primitive::Rect`
[INFO] [stdout]  --> src/rect/myrect.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use nannou::draw::primitive::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/rect/myrect.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/rect/myrect.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]   --> src/rect/myrect.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::DerefMut;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/rect/myrect.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash_map::DefaultHasher`
[INFO] [stdout]    --> src/main.rs:291:28
[INFO] [stdout]     |
[INFO] [stdout] 291 |     use std::collections::{hash_map::DefaultHasher, HashMap};
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cassowary::Term`
[INFO] [stdout]    --> src/main.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |     use cassowary::Term;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]   --> src/layout/layout.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]   --> src/layout/layout.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/event/keypress.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn key_pressed(app: &App, model: &mut Model, key: Key) {
[INFO] [stdout]   |                    ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/resize.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut old_width = solver.get_value(window_width.to_owned());
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/resize.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut old_height = solver.get_value(window_height.to_owned());
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_width`
[INFO] [stdout]   --> src/event/resize.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut old_width = solver.get_value(window_width.to_owned());
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_height`
[INFO] [stdout]   --> src/event/resize.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut old_height = solver.get_value(window_height.to_owned());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]   --> src/layout/layout.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]   --> src/layout/layout.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/view.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut queue: Vec<Rc<MyLayout>> = Vec::from([Rc::new(model.layout.to_owned())]);
[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/event/view.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut vert = 0;
[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/event/view.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut hori = 0;
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_width`
[INFO] [stdout]   --> src/event/view.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let window_width = solver.get_value(*ww);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_height`
[INFO] [stdout]   --> src/event/view.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let window_height = solver.get_value(*wh);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue`
[INFO] [stdout]   --> src/event/view.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut queue: Vec<Rc<MyLayout>> = Vec::from([Rc::new(model.layout.to_owned())]);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vert`
[INFO] [stdout]   --> src/event/view.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut vert = 0;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vert`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hori`
[INFO] [stdout]   --> src/event/view.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut hori = 0;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hori`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/event/keypress.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn key_pressed(app: &App, model: &mut Model, key: Key) {
[INFO] [stdout]   |                    ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/resize.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut old_width = solver.get_value(window_width.to_owned());
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/resize.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut old_height = solver.get_value(window_height.to_owned());
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_width`
[INFO] [stdout]   --> src/event/resize.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut old_width = solver.get_value(window_width.to_owned());
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected`
[INFO] [stdout]   --> src/layout/layout.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(selected: bool, minbox: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_height`
[INFO] [stdout]   --> src/event/resize.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut old_height = solver.get_value(window_height.to_owned());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 | ...                   let mut i_node_layout_new_expression =
[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/layout/layout.rs:294:33
[INFO] [stdout]     |
[INFO] [stdout] 294 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:309:33
[INFO] [stdout]     |
[INFO] [stdout] 309 | ...                   let mut i_node_layout_new_expression =
[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/layout/layout.rs:314:33
[INFO] [stdout]     |
[INFO] [stdout] 314 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let mut first_height = self.first_node_height(padding);
[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/layout/layout.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut first_width = self.first_node_width(padding);
[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/layout/layout.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut found_target = false;
[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/layout/layout.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     let mut fixed_side_constraint = match self.direc {
[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/layout/layout.rs:181:37
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   let mut i_node_layout_new_expression = match *self.nodes[i]
[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/layout/layout.rs:188:37
[INFO] [stdout]     |
[INFO] [stdout] 188 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:202:37
[INFO] [stdout]     |
[INFO] [stdout] 202 | ...                   let mut i_node_layout_new_expression = match *self.nodes[i]
[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/layout/layout.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:228:29
[INFO] [stdout]     |
[INFO] [stdout] 228 |                         let mut new_layout_width = l.first_layout_width(padding);
[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/layout/layout.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                         let mut new_layout_width_constraint = Constraint::new(
[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/layout/layout.rs:241:29
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         let mut new_layout_height = l.first_layout_height(padding);
[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/layout/layout.rs:242:29
[INFO] [stdout]     |
[INFO] [stdout] 242 |                         let mut new_layout_height_constraint = Constraint::new(
[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/layout/layout.rs:378:21
[INFO] [stdout]     |
[INFO] [stdout] 378 |                 let mut new_layout_width_constraint = Constraint::new(
[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/layout/layout.rs:390:21
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 let mut new_layout_height_constraint = Constraint::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found_target`
[INFO] [stdout]   --> src/layout/layout.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut found_target = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_found_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/view.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut queue: Vec<Rc<MyLayout>> = Vec::from([Rc::new(model.layout.to_owned())]);
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 |             LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/event/view.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut vert = 0;
[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/event/view.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut hori = 0;
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_width`
[INFO] [stdout]   --> src/event/view.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let window_width = solver.get_value(*ww);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_height`
[INFO] [stdout]   --> src/event/view.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let window_height = solver.get_value(*wh);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue`
[INFO] [stdout]   --> src/event/view.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut queue: Vec<Rc<MyLayout>> = Vec::from([Rc::new(model.layout.to_owned())]);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vert`
[INFO] [stdout]   --> src/event/view.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut vert = 0;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vert`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hori`
[INFO] [stdout]   --> src/event/view.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut hori = 0;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hori`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected`
[INFO] [stdout]   --> src/layout/layout.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(selected: bool, minbox: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:436:21
[INFO] [stdout]     |
[INFO] [stdout] 436 |                 let mut new_node = Node::new(true, minbox);
[INFO] [stdout]     |                     ----^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `self_`
[INFO] [stdout]    --> src/layout/layout.rs:435:59
[INFO] [stdout]     |
[INFO] [stdout] 435 |             self.nodes.get(target).unwrap().replace_with(|self_| {
[INFO] [stdout]     |                                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_self_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/layout/layout.rs:500:39
[INFO] [stdout]     |
[INFO] [stdout] 500 |                 LayoutVecType::Layout(ref l) => {}
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/layout/layout.rs:559:39
[INFO] [stdout]     |
[INFO] [stdout] 559 |                 LayoutVecType::Layout(ref l) => {}
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:576:33
[INFO] [stdout]     |
[INFO] [stdout] 576 |             LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:602:37
[INFO] [stdout]     |
[INFO] [stdout] 602 |                 LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 | ...                   let mut i_node_layout_new_expression =
[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/layout/layout.rs:294:33
[INFO] [stdout]     |
[INFO] [stdout] 294 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:309:33
[INFO] [stdout]     |
[INFO] [stdout] 309 | ...                   let mut i_node_layout_new_expression =
[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/layout/layout.rs:314:33
[INFO] [stdout]     |
[INFO] [stdout] 314 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let mut first_height = self.first_node_height(padding);
[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/layout/layout.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut first_width = self.first_node_width(padding);
[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/layout/layout.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut found_target = false;
[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/layout/layout.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     let mut fixed_side_constraint = match self.direc {
[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/layout/layout.rs:181:37
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   let mut i_node_layout_new_expression = match *self.nodes[i]
[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/layout/layout.rs:188:37
[INFO] [stdout]     |
[INFO] [stdout] 188 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:202:37
[INFO] [stdout]     |
[INFO] [stdout] 202 | ...                   let mut i_node_layout_new_expression = match *self.nodes[i]
[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/layout/layout.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 | ...                   let mut i_node_layout_new_constraint = Constraint::new(
[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/layout/layout.rs:228:29
[INFO] [stdout]     |
[INFO] [stdout] 228 |                         let mut new_layout_width = l.first_layout_width(padding);
[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/layout/layout.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                         let mut new_layout_width_constraint = Constraint::new(
[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/layout/layout.rs:241:29
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         let mut new_layout_height = l.first_layout_height(padding);
[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/layout/layout.rs:242:29
[INFO] [stdout]     |
[INFO] [stdout] 242 |                         let mut new_layout_height_constraint = Constraint::new(
[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/layout/layout.rs:378:21
[INFO] [stdout]     |
[INFO] [stdout] 378 |                 let mut new_layout_width_constraint = Constraint::new(
[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/layout/layout.rs:390:21
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 let mut new_layout_height_constraint = Constraint::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found_target`
[INFO] [stdout]   --> src/layout/layout.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut found_target = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_found_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 |             LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:868:9
[INFO] [stdout]     |
[INFO] [stdout] 868 |         mut window: &Rect,
[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/layout/layout.rs:913:29
[INFO] [stdout]     |
[INFO] [stdout] 913 |                         let mut new_window = match (reference == *window) {
[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/layout/layout.rs:928:29
[INFO] [stdout]     |
[INFO] [stdout] 928 |                         let mut new_window = match (reference == *window) {
[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/layout/layout.rs:945:13
[INFO] [stdout]     |
[INFO] [stdout] 945 |         let mut full_layout_rect = Rect::from_corners(top_left, bottom_right);
[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/layout/layout.rs:436:21
[INFO] [stdout]     |
[INFO] [stdout] 436 |                 let mut new_node = Node::new(true, minbox);
[INFO] [stdout]     |                     ----^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `self_`
[INFO] [stdout]    --> src/layout/layout.rs:435:59
[INFO] [stdout]     |
[INFO] [stdout] 435 |             self.nodes.get(target).unwrap().replace_with(|self_| {
[INFO] [stdout]     |                                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_self_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rect/myrect.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut rect = MyRect {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minbox`
[INFO] [stdout]   --> src/rect/myrect.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(minbox: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_minbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/layout/layout.rs:500:39
[INFO] [stdout]     |
[INFO] [stdout] 500 |                 LayoutVecType::Layout(ref l) => {}
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init`
[INFO] [stdout]   --> src/main.rs:36:71
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn insertion(&mut self, selection: bool, insertway: InsertionWay, init: bool) {
[INFO] [stdout]    |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_init`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/layout/layout.rs:559:39
[INFO] [stdout]     |
[INFO] [stdout] 559 |                 LayoutVecType::Layout(ref l) => {}
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut rTop = Constraint::new(
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut rHeight = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut rWidth = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut rLeft = Constraint::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:576:33
[INFO] [stdout]     |
[INFO] [stdout] 576 |             LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let mut vert_constraint = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut hori_constraint = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/layout/layout.rs:602:37
[INFO] [stdout]     |
[INFO] [stdout] 602 |                 LayoutVecType::Node(ref n) => {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let mut solver = Solver::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:280:11
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn update(app: &App, model: &mut Model, update: Update) {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update`
[INFO] [stdout]    --> src/main.rs:280:41
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn update(app: &App, model: &mut Model, update: Update) {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/main.rs:284:11
[INFO] [stdout]     |
[INFO] [stdout] 284 |     for &(var, value) in solver.fetch_changes() {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/main.rs:284:16
[INFO] [stdout]     |
[INFO] [stdout] 284 |     for &(var, value) in solver.fetch_changes() {
[INFO] [stdout]     |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `step` is never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Model {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     step: f32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:868:9
[INFO] [stdout]     |
[INFO] [stdout] 868 |         mut window: &Rect,
[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/layout/layout.rs:913:29
[INFO] [stdout]     |
[INFO] [stdout] 913 |                         let mut new_window = match (reference == *window) {
[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/layout/layout.rs:928:29
[INFO] [stdout]     |
[INFO] [stdout] 928 |                         let mut new_window = match (reference == *window) {
[INFO] [stdout]     |                             ----^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rTop` should have a snake case name
[INFO] [stdout]   --> src/main.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut rTop = Constraint::new(
[INFO] [stdout]    |                 ^^^^ help: convert the identifier to snake case: `r_top`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut rHeight = Constraint::new(
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `r_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut rWidth = Constraint::new(
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `r_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rLeft` should have a snake case name
[INFO] [stdout]    --> src/main.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut rLeft = Constraint::new(
[INFO] [stdout]     |                 ^^^^^ help: convert the identifier to snake case: `r_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/layout/layout.rs:945:13
[INFO] [stdout]     |
[INFO] [stdout] 945 |         let mut full_layout_rect = Rect::from_corners(top_left, bottom_right);
[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/rect/myrect.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut rect = MyRect {
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minbox`
[INFO] [stdout]   --> src/rect/myrect.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(minbox: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_minbox`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init`
[INFO] [stdout]   --> src/main.rs:36:71
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn insertion(&mut self, selection: bool, insertway: InsertionWay, init: bool) {
[INFO] [stdout]    |                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_init`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut rTop = Constraint::new(
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut rHeight = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut rWidth = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut rLeft = Constraint::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let mut vert_constraint = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut hori_constraint = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let mut solver = Solver::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:280:11
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn update(app: &App, model: &mut Model, update: Update) {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update`
[INFO] [stdout]    --> src/main.rs:280:41
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn update(app: &App, model: &mut Model, update: Update) {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_update`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/main.rs:284:11
[INFO] [stdout]     |
[INFO] [stdout] 284 |     for &(var, value) in solver.fetch_changes() {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/main.rs:284:16
[INFO] [stdout]     |
[INFO] [stdout] 284 |     for &(var, value) in solver.fetch_changes() {
[INFO] [stdout]     |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mut rect = MyRect::new(2.0);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let mut minbox = 20.0;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:303:13
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let mut min_width = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let mut min_height = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:315:13
[INFO] [stdout]     |
[INFO] [stdout] 315 |         let mut win_width = Variable::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:316:13
[INFO] [stdout]     |
[INFO] [stdout] 316 |         let mut win_height = Variable::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let mut wid_constr = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let mut hei_constr = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let mut rect2 = MyRect::new(2.0);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let mut min_width_2 = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let mut min_height_2 = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let mut hei_constr_2 = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut new_wid_const = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut rect = MyRect::new(2.0);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let mut temp_var = Variable::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:428:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let mut fixed_var = Variable::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:430:13
[INFO] [stdout]     |
[INFO] [stdout] 430 |         let mut test_constr = Constraint::new(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:461:13
[INFO] [stdout]     |
[INFO] [stdout] 461 |         let mut new_constr = test_constr.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_constr`
[INFO] [stdout]    --> src/main.rs:461:13
[INFO] [stdout]     |
[INFO] [stdout] 461 |         let mut new_constr = test_constr.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_constr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:135:21
[INFO] [stdout]     |
[INFO] [stdout] 135 |                     self.solver.remove_constraint(&c[i]);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                     let _ = self.solver.remove_constraint(&c[i]);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `step` is never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Model {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     step: f32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rTop` should have a snake case name
[INFO] [stdout]   --> src/main.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut rTop = Constraint::new(
[INFO] [stdout]    |                 ^^^^ help: convert the identifier to snake case: `r_top`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut rHeight = Constraint::new(
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `r_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut rWidth = Constraint::new(
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `r_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rLeft` should have a snake case name
[INFO] [stdout]    --> src/main.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut rLeft = Constraint::new(
[INFO] [stdout]     |                 ^^^^^ help: convert the identifier to snake case: `r_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Eq::assert_receiver_is_total_eq` should never be implemented by hand
[INFO] [stdout]   --> src/rect/myrect.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn assert_receiver_is_total_eq(&self) {}
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method was used to add checks to the `Eq` derive macro
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #152336 <https://github.com/rust-lang/rust/issues/152336>
[INFO] [stdout]    = note: `#[warn(internal_eq_trait_method_impls)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:135:21
[INFO] [stdout]     |
[INFO] [stdout] 135 |                     self.solver.remove_constraint(&c[i]);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |                     let _ = self.solver.remove_constraint(&c[i]);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Eq::assert_receiver_is_total_eq` should never be implemented by hand
[INFO] [stdout]   --> src/rect/myrect.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn assert_receiver_is_total_eq(&self) {}
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method was used to add checks to the `Eq` derive macro
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #152336 <https://github.com/rust-lang/rust/issues/152336>
[INFO] [stdout]    = note: `#[warn(internal_eq_trait_method_impls)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |         solver.add_edit_variable(temp_var, WEAK);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let _ = solver.add_edit_variable(temp_var, WEAK);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |         solver.add_edit_variable(fixed_var, STRONG);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 437 |         let _ = solver.add_edit_variable(fixed_var, STRONG);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:445:9
[INFO] [stdout]     |
[INFO] [stdout] 445 |         solver.suggest_value(fixed_var, 10.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 445 |         let _ = solver.suggest_value(fixed_var, 10.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: noise v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "3bbb122a832a51112db9ce7e70f51070a49b58a08297d80d01d38900b77be9bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3bbb122a832a51112db9ce7e70f51070a49b58a08297d80d01d38900b77be9bc", kill_on_drop: false }`
[INFO] [stdout] 3bbb122a832a51112db9ce7e70f51070a49b58a08297d80d01d38900b77be9bc
