[INFO] cloning repository https://github.com/jszendre/takeoff-ui
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jszendre/takeoff-ui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjszendre%2Ftakeoff-ui", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjszendre%2Ftakeoff-ui'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6fabf35aed7e5276e7db0e49875c69e7ec410a0c
[INFO] checking jszendre/takeoff-ui against master#c8a31b780d5415358566a20b94912620a3f27067 for pr-139493-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjszendre%2Ftakeoff-ui" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jszendre/takeoff-ui
[INFO] finished tweaking git repo https://github.com/jszendre/takeoff-ui
[INFO] tweaked toml for git repo https://github.com/jszendre/takeoff-ui written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jszendre/takeoff-ui on toolchain c8a31b780d5415358566a20b94912620a3f27067
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c8a31b780d5415358566a20b94912620a3f27067" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jszendre/takeoff-ui 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" "+c8a31b780d5415358566a20b94912620a3f27067" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c8a31b780d5415358566a20b94912620a3f27067" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0b4ae439847b57aa99e48f07b03f2172462b5aa67ca9473a1a42563adef57ac3
[INFO] running `Command { std: "docker" "start" "-a" "0b4ae439847b57aa99e48f07b03f2172462b5aa67ca9473a1a42563adef57ac3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0b4ae439847b57aa99e48f07b03f2172462b5aa67ca9473a1a42563adef57ac3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b4ae439847b57aa99e48f07b03f2172462b5aa67ca9473a1a42563adef57ac3", kill_on_drop: false }`
[INFO] [stdout] 0b4ae439847b57aa99e48f07b03f2172462b5aa67ca9473a1a42563adef57ac3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c8a31b780d5415358566a20b94912620a3f27067" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 56b74b98e211125b12bbef28989d3ebb54a7ffc7b824b829cba278ae18d06c00
[INFO] running `Command { std: "docker" "start" "-a" "56b74b98e211125b12bbef28989d3ebb54a7ffc7b824b829cba278ae18d06c00", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling syn v2.0.67
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.2.50
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.92
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.92
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.92
[INFO] [stderr]     Checking wasm-bindgen v0.2.92
[INFO] [stderr]     Checking js-sys v0.3.69
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking web-sys v0.3.69
[INFO] [stderr]     Checking wasm-bindgen-futures v0.3.27
[INFO] [stderr]     Checking wasm-bindgen-test v0.2.50
[INFO] [stderr]     Checking image-editor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::console_error_panic_hook::set_once as set_panic_hook`
[INFO] [stdout]   --> src/utils.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |         pub use self::console_error_panic_hook::set_once as set_panic_hook;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]  --> src/image/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Mul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/image/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::default::Default`
[INFO] [stdout]  --> src/image/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::default::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]  --> src/image/transform_tool.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | macro_rules! log {
[INFO] [stdout]   |              ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]  --> src/image/color_tool.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | macro_rules! log {
[INFO] [stdout]   |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/image/filter_tool.rs:456:76
[INFO] [stdout]     |
[INFO] [stdout] 456 | ...   let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min(((img_height - 1) as i32)) as u32; // "1 * v_dir", we need to add th...
[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] 456 -             let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min(((img_height - 1) as i32)) as u32; // "1 * v_dir", we need to add the row above the top row, or below the bottom row
[INFO] [stdout] 456 +             let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min((img_height - 1) as i32 ) as u32; // "1 * v_dir", we need to add the row above the top row, or below the bottom row
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:689:22
[INFO] [stdout]     |
[INFO] [stdout] 689 |                 xr = ((7.787 * xr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 689 -                 xr = ((7.787 * xr) + 16.0 / 116.0);
[INFO] [stdout] 689 +                 xr = (7.787 * xr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:697:22
[INFO] [stdout]     |
[INFO] [stdout] 697 |                 yr = ((7.787 * yr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 697 -                 yr = ((7.787 * yr) + 16.0 / 116.0);
[INFO] [stdout] 697 +                 yr = (7.787 * yr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:705:22
[INFO] [stdout]     |
[INFO] [stdout] 705 |                 zr = ((7.787 * zr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 705 -                 zr = ((7.787 * zr) + 16.0 / 116.0);
[INFO] [stdout] 705 +                 zr = (7.787 * zr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]   --> src/image/mod.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | macro_rules! log {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::console_error_panic_hook::set_once as set_panic_hook`
[INFO] [stdout]   --> src/utils.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |         pub use self::console_error_panic_hook::set_once as set_panic_hook;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]  --> src/image/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Mul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/image/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::default::Default`
[INFO] [stdout]  --> src/image/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::default::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]  --> src/image/transform_tool.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | macro_rules! log {
[INFO] [stdout]   |              ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]  --> src/image/color_tool.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | macro_rules! log {
[INFO] [stdout]   |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/image/filter_tool.rs:456:76
[INFO] [stdout]     |
[INFO] [stdout] 456 | ...   let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min(((img_height - 1) as i32)) as u32; // "1 * v_dir", we need to add th...
[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] 456 -             let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min(((img_height - 1) as i32)) as u32; // "1 * v_dir", we need to add the row above the top row, or below the bottom row
[INFO] [stdout] 456 +             let row_to_add = (row + radius * v_dir + 1 * v_dir).max(0).min((img_height - 1) as i32 ) as u32; // "1 * v_dir", we need to add the row above the top row, or below the bottom row
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:689:22
[INFO] [stdout]     |
[INFO] [stdout] 689 |                 xr = ((7.787 * xr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 689 -                 xr = ((7.787 * xr) + 16.0 / 116.0);
[INFO] [stdout] 689 +                 xr = (7.787 * xr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:697:22
[INFO] [stdout]     |
[INFO] [stdout] 697 |                 yr = ((7.787 * yr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 697 -                 yr = ((7.787 * yr) + 16.0 / 116.0);
[INFO] [stdout] 697 +                 yr = (7.787 * yr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/image/filter_tool.rs:705:22
[INFO] [stdout]     |
[INFO] [stdout] 705 |                 zr = ((7.787 * zr) + 16.0 / 116.0);
[INFO] [stdout]     |                      ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 705 -                 zr = ((7.787 * zr) + 16.0 / 116.0);
[INFO] [stdout] 705 +                 zr = (7.787 * zr) + 16.0 / 116.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `log`
[INFO] [stdout]   --> src/image/mod.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | macro_rules! log {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/image/filter_tool.rs:490:91
[INFO] [stdout]     |
[INFO] [stdout] 490 |             let row_range = if v_dir == 1 { &mut top_down } else { &mut bottom_up as &mut Iterator<Item = _> };
[INFO] [stdout]     |                                                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 490 |             let row_range = if v_dir == 1 { &mut top_down } else { &mut bottom_up as &mut dyn Iterator<Item = _> };
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/image/filter_tool.rs:490:91
[INFO] [stdout]     |
[INFO] [stdout] 490 |             let row_range = if v_dir == 1 { &mut top_down } else { &mut bottom_up as &mut Iterator<Item = _> };
[INFO] [stdout]     |                                                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 490 |             let row_range = if v_dir == 1 { &mut top_down } else { &mut bottom_up as &mut dyn Iterator<Item = _> };
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `running_sum` is never read
[INFO] [stdout]    --> src/image/color_tool.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut running_sum = 0.0;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image/filter_tool.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut width = width.min(self.width_bk);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `img_height`
[INFO] [stdout]    --> src/image/filter_tool.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let img_height = self.height;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_img_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/image/filter_tool.rs:264:60
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut box_sum = |row: u32, col: u32, start: i32, end: i32| {
[INFO] [stdout]     |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/image/filter_tool.rs:294:50
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut box_sum = |row, col, start: i32, end: i32| {
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `running_sum` is never read
[INFO] [stdout]    --> src/image/color_tool.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut running_sum = 0.0;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image/filter_tool.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut update_hist_h = |row: i32, col: i32, histogram: &mut Vec<Vec<u32>>, pixels: &[u8]| {
[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/image/filter_tool.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |         let mut update_hist_v = |row: i32, col: i32, v_dir: i32, histogram: &mut Vec<Vec<u32>>, pixels: &[u8]| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kernel_value` is never read
[INFO] [stdout]    --> src/image/filter_tool.rs:557:32
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let mut kernel_value = 0.0;
[INFO] [stdout]     |                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image/filter_tool.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut width = width.min(self.width_bk);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `img_height`
[INFO] [stdout]    --> src/image/filter_tool.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let img_height = self.height;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_img_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/image/filter_tool.rs:264:60
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut box_sum = |row: u32, col: u32, start: i32, end: i32| {
[INFO] [stdout]     |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/image/filter_tool.rs:294:50
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut box_sum = |row, col, start: i32, end: i32| {
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `median_filter` is never used
[INFO] [stdout]    --> src/image/filter_tool.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Image {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn median_filter(&mut self, radius: u32) {
[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 `X` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:39
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:46
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                              ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Z` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:53
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case (notice the capitalization): `z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Xr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:639:13
[INFO] [stdout]     |
[INFO] [stdout] 639 |         let Xr = 95.047;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `xr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Yr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let Yr = 100.0;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `yr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Zr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 |         let Zr = 108.883;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `zr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/image/filter_tool.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut update_hist_h = |row: i32, col: i32, histogram: &mut Vec<Vec<u32>>, pixels: &[u8]| {
[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/image/filter_tool.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |         let mut update_hist_v = |row: i32, col: i32, v_dir: i32, histogram: &mut Vec<Vec<u32>>, pixels: &[u8]| {
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kernel_value` is never read
[INFO] [stdout]    --> src/image/filter_tool.rs:557:32
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let mut kernel_value = 0.0;
[INFO] [stdout]     |                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `median_filter` is never used
[INFO] [stdout]    --> src/image/filter_tool.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Image {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn median_filter(&mut self, radius: u32) {
[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 `X` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:39
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:46
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                              ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Z` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:638:53
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let (mut r, mut g, mut b, mut X, mut Y, mut Z, mut xr, mut yr, mut zr);
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case (notice the capitalization): `z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Xr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:639:13
[INFO] [stdout]     |
[INFO] [stdout] 639 |         let Xr = 95.047;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `xr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Yr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let Yr = 100.0;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `yr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Zr` should have a snake case name
[INFO] [stdout]    --> src/image/filter_tool.rs:641:13
[INFO] [stdout]     |
[INFO] [stdout] 641 |         let Zr = 108.883;
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `zr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.28s
[INFO] running `Command { std: "docker" "inspect" "56b74b98e211125b12bbef28989d3ebb54a7ffc7b824b829cba278ae18d06c00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56b74b98e211125b12bbef28989d3ebb54a7ffc7b824b829cba278ae18d06c00", kill_on_drop: false }`
[INFO] [stdout] 56b74b98e211125b12bbef28989d3ebb54a7ffc7b824b829cba278ae18d06c00
