[INFO] cloning repository https://github.com/floffy-f/Stenm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/floffy-f/Stenm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffloffy-f%2FStenm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffloffy-f%2FStenm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 97f320157ee628578b2aaf5d48be55457474cead
[INFO] checking floffy-f/Stenm against master#568f6a8641e391ffcdcdb03e79d0901731d8d399 for pr-117164-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffloffy-f%2FStenm" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/floffy-f/Stenm on toolchain 568f6a8641e391ffcdcdb03e79d0901731d8d399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+568f6a8641e391ffcdcdb03e79d0901731d8d399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/floffy-f/Stenm
[INFO] finished tweaking git repo https://github.com/floffy-f/Stenm
[INFO] tweaked toml for git repo https://github.com/floffy-f/Stenm written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/floffy-f/Stenm 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" "+568f6a8641e391ffcdcdb03e79d0901731d8d399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-1-tc1/source/stenm-wasm/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] [stderr] warning: /workspace/builds/worker-1-tc1/source/stenm-wasm/Cargo.toml: unused manifest key: build
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.73
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.23
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.73
[INFO] [stderr]   Downloaded nalgebra-macros v0.1.0
[INFO] [stderr]   Downloaded number_prefix v0.3.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.73
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.73
[INFO] [stderr]   Downloaded libc v0.2.93
[INFO] [stderr]   Downloaded regex-syntax v0.6.23
[INFO] [stderr]   Downloaded regex v1.4.5
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.73
[INFO] [stderr]   Downloaded js-sys v0.3.50
[INFO] [stderr]   Downloaded serde_derive v1.0.125
[INFO] [stderr]   Downloaded serde v1.0.125
[INFO] [stderr]   Downloaded web-sys v0.3.50
[INFO] [stderr]   Downloaded syn v1.0.69
[INFO] [stderr]   Downloaded anyhow v1.0.40
[INFO] [stderr]   Downloaded num-rational v0.4.0
[INFO] [stderr]   Downloaded approx v0.5.0
[INFO] [stderr]   Downloaded simba v0.5.1
[INFO] [stderr]   Downloaded nalgebra v0.28.0
[INFO] [stderr]   Downloaded nalgebra-sparse v0.4.0
[INFO] [stderr]   Downloaded bytemuck v1.5.1
[INFO] [stderr]   Downloaded encode_unicode v0.3.6
[INFO] [stderr]   Downloaded terminal_size v0.1.16
[INFO] [stderr]   Downloaded console v0.14.1
[INFO] [stderr]   Downloaded indicatif v0.15.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.24
[INFO] [stderr]   Downloaded thiserror v1.0.24
[INFO] [stderr]   Downloaded proc-macro2 v1.0.26
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+568f6a8641e391ffcdcdb03e79d0901731d8d399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0e486404beef0b7646a0b7212fda2ed361b59bcbdb4a2104ab62b79ce6c3ebad
[INFO] running `Command { std: "docker" "start" "-a" "0e486404beef0b7646a0b7212fda2ed361b59bcbdb4a2104ab62b79ce6c3ebad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e486404beef0b7646a0b7212fda2ed361b59bcbdb4a2104ab62b79ce6c3ebad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e486404beef0b7646a0b7212fda2ed361b59bcbdb4a2104ab62b79ce6c3ebad", kill_on_drop: false }`
[INFO] [stdout] 0e486404beef0b7646a0b7212fda2ed361b59bcbdb4a2104ab62b79ce6c3ebad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+568f6a8641e391ffcdcdb03e79d0901731d8d399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cfbd8171f401c368cffbfbcd99df117cb56ed2203f68f92d12045573e24e1975
[INFO] running `Command { std: "docker" "start" "-a" "cfbd8171f401c368cffbfbcd99df117cb56ed2203f68f92d12045573e24e1975", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/stenm-wasm/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: /opt/rustwide/workdir/stenm-wasm/Cargo.toml: unused manifest key: build
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.69
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.73
[INFO] [stderr]    Compiling serde_derive v1.0.125
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling serde v1.0.125
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling bumpalo v3.6.1
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling paste v1.0.5
[INFO] [stderr]    Compiling libc v0.2.93
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]    Compiling wasm-bindgen v0.2.73
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking matrixmultiply v0.3.1
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking regex-syntax v0.6.23
[INFO] [stderr]     Checking num-complex v0.3.1
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking terminal_size v0.1.16
[INFO] [stderr]    Compiling num-rational v0.4.0
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking simba v0.4.0
[INFO] [stderr]     Checking num-complex v0.4.0
[INFO] [stderr]     Checking approx v0.5.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking number_prefix v0.3.0
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking regex v1.4.5
[INFO] [stderr]     Checking simba v0.5.1
[INFO] [stderr]    Compiling anyhow v1.0.40
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking console v0.14.1
[INFO] [stderr]     Checking indicatif v0.15.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.73
[INFO] [stderr]    Compiling thiserror-impl v1.0.24
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.73
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.73
[INFO] [stderr]     Checking thiserror v1.0.24
[INFO] [stderr]     Checking nalgebra v0.28.0
[INFO] [stderr]     Checking nalgebra v0.25.4
[INFO] [stderr]     Checking js-sys v0.3.50
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.23
[INFO] [stderr]     Checking nalgebra-sparse v0.4.0
[INFO] [stderr]     Checking stenm v0.2.0 (/opt/rustwide/workdir/stenm-lib)
[INFO] [stderr]     Checking stenm-wasm v0.1.0 (/opt/rustwide/workdir/stenm-wasm)
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> stenm-wasm/src/utils.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob::glob`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glob::glob;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbaImage`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{ImageError, RgbaImage};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `console_log`
[INFO] [stdout]   --> stenm-wasm/src/utils.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | macro_rules! console_log {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob::glob`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glob::glob;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbaImage`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{ImageError, RgbaImage};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gray_imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |             Dataset::GrayImages(gray_imgs) => {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gray_imgs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gray_imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:245:36
[INFO] [stdout]     |
[INFO] [stdout] 245 |             Dataset::GrayImagesU16(gray_imgs) => {
[INFO] [stdout]     |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gray_imgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:286:35
[INFO] [stdout]     |
[INFO] [stdout] 286 |             Dataset::RgbImagesU16(imgs) => {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_imgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:323:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     Err(e) => planar::main::save_matrix(&albedo).map_err(utils::report_error)?,
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gray_imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |             Dataset::GrayImages(gray_imgs) => {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gray_imgs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gray_imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:245:36
[INFO] [stdout]     |
[INFO] [stdout] 245 |             Dataset::GrayImagesU16(gray_imgs) => {
[INFO] [stdout]     |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gray_imgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imgs`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:286:35
[INFO] [stdout]     |
[INFO] [stdout] 286 |             Dataset::RgbImagesU16(imgs) => {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_imgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:323:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |                     Err(e) => planar::main::save_matrix(&albedo).map_err(utils::report_error)?,
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     return Ok((normals.clone(), normals, albedo));
[INFO] [stdout]    |     --------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 88 |     todo!()
[INFO] [stdout]    |     ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     return Ok((normals.clone(), normals, albedo));
[INFO] [stdout]    |     --------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 88 |     todo!()
[INFO] [stdout]    |     ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RealField`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nalgebra::{DMatrix, RealField};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lights_intensities`
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:71:27
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let (normals, albedo, lights_intensities) = semicalibrated_ps(&config, &obs);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lights_intensities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:391:9
[INFO] [stdout]     |
[INFO] [stdout] 391 |     let f = px + qy;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_top`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:394:9
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let b_top = -p.slice((0, 1), (1, ncols - 2));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_b_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_bot`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:395:9
[INFO] [stdout]     |
[INFO] [stdout] 395 |     let b_bot = p.slice((nrows - 1, 1), (1, ncols - 2));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_b_bot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_left`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let b_left = -q.slice((1, 0), (nrows - 2, 1));
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_right`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:397:9
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let b_right = q.slice((1, ncols - 1), (nrows - 2, 1));
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_topleft`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let b_topleft = (-p[(0, 0)] - q[(0, 0)]) / 2.0_f32.sqrt();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_topleft`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:399:4
[INFO] [stdout]     |
[INFO] [stdout] 399 | fn encode<Im: ToImage>(i: usize, mat: &Im) -> anyhow::Result<Box<[u8]>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_stop_bool` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:444:10
[INFO] [stdout]     |
[INFO] [stdout] 444 | async fn should_stop_bool(step: &str, progress: Option<u32>) -> bool {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `original_motion` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:449:4
[INFO] [stdout]     |
[INFO] [stdout] 449 | fn original_motion(crop: Option<Crop>, motion_vec_crop: Vec<Vector6<f32>>) -> Vec<Vector6<f32>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `into_gray_u8` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:457:4
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn into_gray_u8(m: DMatrix<u16>) -> DMatrix<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point2` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Point2 = nalgebra::Point2<f32>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Point3 = nalgebra::Point3<f32>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Vec3 = nalgebra::Vector3<f32>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Mat3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Mat3 = nalgebra::Matrix3<f32>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `project`, `back_project`, `multi_res`, and `half_res` are never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Camera {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 30 |     /// Initialize a camera from intrinsic and extrinsic parameters.
[INFO] [stdout] 31 |     pub fn new(intrinsics: Intrinsics, extrinsics: Extrinsics) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn project(&self, point: Point3) -> Vec3 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn back_project(&self, point: Point2, depth: f32) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn multi_res(self, n: usize) -> Vec<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn half_res(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `matrix`, `multi_res`, `half_res`, `project`, and `back_project` are never used
[INFO] [stdout]    --> stenm-wasm/src/planar/camera.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Intrinsics {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn matrix(&self) -> Affine2<f32> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn multi_res(self, n: usize) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn half_res(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn project(&self, point: Point3) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn back_project(&self, point: Point2, depth: f32) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn project(pose: &Extrinsics, point: Point3) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `back_project` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn back_project(pose: &Extrinsics, point: Point3) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn smooth(img: &DMatrix<u8>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv_2d_direct_same` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn conv_2d_direct_same(img: &DMatrix<u8>, kernel: &DMatrix<f32>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn gradients_f32(img: &DMatrix<f32>) -> (DMatrix<f32>, DMatrix<f32>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv_2d_direct_same_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn conv_2d_direct_same_f32(img: &DMatrix<f32>, kernel: &DMatrix<f32>) -> DMatrix<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian_kernel` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/filter.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn gaussian_kernel(sigma: f32, size: usize) -> DMatrix<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn centered(img: &na::DMatrix<u8>) -> (na::DMatrix<i16>, na::DMatrix<i16>) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn centered_f32(img: &na::DMatrix<f32>) -> na::DMatrix<(f32, f32)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_4` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn centered_4(img: &na::DMatrix<u8>) -> (na::DMatrix<i16>, na::DMatrix<i16>) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_4_f32` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn centered_4_f32(img: &na::DMatrix<f32>) -> (na::DMatrix<f32>, na::DMatrix<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared_norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn squared_norm(grad_x: &na::DMatrix<i16>, grad_y: &na::DMatrix<i16>) -> na::DMatrix<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared_norm_direct` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn squared_norm_direct(im: &na::DMatrix<u8>) -> na::DMatrix<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_x` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn bloc_x(a: u8, b: u8, c: u8, d: u8) -> i16 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_y` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn bloc_y(a: u8, b: u8, c: u8, d: u8) -> i16 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_squared_norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn bloc_squared_norm(a: u8, b: u8, c: u8, d: u8) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on_border` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/height_map.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn is_on_border(k: usize, n: usize, m: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_from_matrix` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn image_from_matrix(mat: &DMatrix<u8>) -> GrayImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_from_matrix` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn rgb_from_matrix(mat: &DMatrix<(u8, u8, u8)>) -> RgbImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_from_matrix_transposed` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn image_from_matrix_transposed(mat: &DMatrix<u8>) -> ImageBuffer<Luma<u8>, &[u8]> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_from_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn matrix_from_image(img: GrayImage) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_from_rgb_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn matrix_from_rgb_image(img: RgbImage) -> DMatrix<(u8, u8, u8)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `green_mat_from_rgb_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn green_mat_from_rgb_image(img: RgbImage) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interpolation.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn linear<T>(x: f32, y: f32, image: &DMatrix<T>) -> f32
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_border` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interpolation.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn nearest_border(x: f32, y: f32, width: usize, height: usize) -> (usize, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_u8_imgs` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/main.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn save_u8_imgs(dir: &Path, imgs: &[DMatrix<u8>]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mean_pyramid` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn mean_pyramid(max_levels: usize, mat: DMatrix<u8>) -> Vec<DMatrix<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `limited_sequence` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn limited_sequence<F: Fn(&T) -> Option<T>, T>(max_length: usize, data: T, f: F) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn sequence<F: FnMut(&T) -> Option<T>, T>(data: T, mut f: F) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `halve` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn halve<F, T, U>(mat: &DMatrix<T>, f: F) -> Option<DMatrix<U>>
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_squared_norm` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn gradients_squared_norm(multires_mat: &[DMatrix<u8>]) -> Vec<DMatrix<u16>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_xy` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/multires.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn gradients_xy(multires_mat: &[DMatrix<u8>]) -> Vec<(DMatrix<i16>, DMatrix<i16>)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Continue` is never used
[INFO] [stdout]  --> stenm-wasm/src/planar/optimizer.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Continue {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Color` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:91:6
[INFO] [stdout]    |
[INFO] [stdout] 91 | type Color = (u8, u8, u8);
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `substract_ambiant` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn substract_ambiant(raw_imgs: &[DMatrix<f32>], ambiant: &DMatrix<f32>) -> Vec<DMatrix<f32>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_matrix` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn save_matrix<P: AsRef<Path>>(img: &DMatrix<f32>, path: P) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perspective_integration` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:298:4
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn perspective_integration(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dct_poisson` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn dct_poisson(p: &DMatrix<f32>, q: &DMatrix<f32>) -> DMatrix<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_column_major` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:402:4
[INFO] [stdout]     |
[INFO] [stdout] 402 | fn coordinates_column_major(shape: (usize, usize)) -> impl Iterator<Item = (usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_from_mask` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:409:4
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn coordinates_from_mask(mask: &DMatrix<bool>) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:415:4
[INFO] [stdout]     |
[INFO] [stdout] 415 | fn extract_sparse<T, I: Iterator<Item = bool>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shrink` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:450:4
[INFO] [stdout]     |
[INFO] [stdout] 450 | fn shrink<T: RealField>(alpha: T, x: T) -> T {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Levels` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/registration.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | type Levels<T> = Vec<T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gray_images` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/registration.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn gray_images(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn merge_sparse(matrices: &[DMatrix<bool>]) -> DMatrix<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StepConfig` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | struct StepConfig {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Obs` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | struct Obs<'a> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Forward` and `Stop` are never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 227 | enum Continue {
[INFO] [stdout]     |      -------- variants in this enum
[INFO] [stdout] 228 |     Forward,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 229 |     Stop,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct State {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `step` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl State {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 243 |     /// Core iteration step of the algorithm.
[INFO] [stdout] 244 |     fn step(&mut self, config: &StepConfig, obs: &Obs) -> Continue {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_from_mask` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn coordinates_from_mask(mask: &DMatrix<bool>) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn extract_sparse<T, I: Iterator<Item = bool>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_registered_gradients_full` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:362:4
[INFO] [stdout]     |
[INFO] [stdout] 362 | fn compute_registered_gradients_full(shape: (usize, usize), registered: &[f32]) -> Vec<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_registered_gradients_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn compute_registered_gradients_sparse(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forwards_compositional_step` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn forwards_compositional_step(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `projection_mat` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn projection_mat(params: &Vector6<f32>) -> Matrix3<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `projection_params` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:443:8
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub fn projection_params(mat: &Matrix3<f32>) -> Vector6<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_f32` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:459:4
[INFO] [stdout]     |
[INFO] [stdout] 459 | fn project_f32(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reproject_u8` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub fn reproject_u8(imgs: &[DMatrix<u8>], motion_vec: &[Vector6<f32>]) -> Vec<DMatrix<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:496:4
[INFO] [stdout]     |
[INFO] [stdout] 496 | fn norm(matrix: &DMatrix<f32>) -> f32 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `norm_sqr` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn norm_sqr(matrix: &DMatrix<f32>) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shrink` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:505:4
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn shrink<T: RealField>(alpha: T, x: T) -> T {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn select<T>(diff_threshold: T, gradients: &[DMatrix<T>]) -> Vec<DMatrix<bool>>
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_2x2_bloc` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn select_2x2_bloc<T, F>(pre_mask: &DMatrix<bool>, mat: &DMatrix<T>, f: F) -> DMatrix<bool>
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune_with_thresh` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn prune_with_thresh<T>(thresh: T, a: T, b: T, c: T, d: T) -> [bool; 4]
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_to_gray` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn rgb_to_gray(red: &DMatrix<u8>, green: &DMatrix<u8>, blue: &DMatrix<u8>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reshape` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn reshape<N, R, C>(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn transpose<T: Clone>(v: Vec<Vec<T>>) -> Vec<Vec<T>> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let imgs = raw_images.clone();
[INFO] [stdout]    |                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `[nalgebra::Matrix<f32, nalgebra::Dynamic, nalgebra::Dynamic, nalgebra::VecStorage<f32, nalgebra::Dynamic, nalgebra::Dynamic>>]` does not implement `Clone`, so calling `clone` on `&[nalgebra::Matrix<f32, nalgebra::Dynamic, nalgebra::Dynamic, nalgebra::VecStorage<f32, nalgebra::Dynamic, nalgebra::Dynamic>>]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RealField`
[INFO] [stdout]  --> stenm-wasm/src/planar/main.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nalgebra::{DMatrix, RealField};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 96 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lights_intensities`
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:71:27
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let (normals, albedo, lights_intensities) = semicalibrated_ps(&config, &obs);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lights_intensities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:391:9
[INFO] [stdout]     |
[INFO] [stdout] 391 |     let f = px + qy;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_top`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:394:9
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let b_top = -p.slice((0, 1), (1, ncols - 2));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_b_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_bot`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:395:9
[INFO] [stdout]     |
[INFO] [stdout] 395 |     let b_bot = p.slice((nrows - 1, 1), (1, ncols - 2));
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_b_bot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_left`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let b_left = -q.slice((1, 0), (nrows - 2, 1));
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_right`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:397:9
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let b_right = q.slice((1, ncols - 1), (nrows - 2, 1));
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_topleft`
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let b_topleft = (-p[(0, 0)] - q[(0, 0)]) / 2.0_f32.sqrt();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_topleft`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:399:4
[INFO] [stdout]     |
[INFO] [stdout] 399 | fn encode<Im: ToImage>(i: usize, mat: &Im) -> anyhow::Result<Box<[u8]>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_stop_bool` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:444:10
[INFO] [stdout]     |
[INFO] [stdout] 444 | async fn should_stop_bool(step: &str, progress: Option<u32>) -> bool {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `original_motion` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:449:4
[INFO] [stdout]     |
[INFO] [stdout] 449 | fn original_motion(crop: Option<Crop>, motion_vec_crop: Vec<Vector6<f32>>) -> Vec<Vector6<f32>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `into_gray_u8` is never used
[INFO] [stdout]    --> stenm-wasm/src/lib.rs:457:4
[INFO] [stdout]     |
[INFO] [stdout] 457 | fn into_gray_u8(m: DMatrix<u16>) -> DMatrix<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point2` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Point2 = nalgebra::Point2<f32>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Point3 = nalgebra::Point3<f32>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Vec3 = nalgebra::Vector3<f32>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Mat3` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Mat3 = nalgebra::Matrix3<f32>;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `project`, `back_project`, `multi_res`, and `half_res` are never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Camera {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 30 |     /// Initialize a camera from intrinsic and extrinsic parameters.
[INFO] [stdout] 31 |     pub fn new(intrinsics: Intrinsics, extrinsics: Extrinsics) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn project(&self, point: Point3) -> Vec3 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn back_project(&self, point: Point2, depth: f32) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn multi_res(self, n: usize) -> Vec<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn half_res(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `matrix`, `multi_res`, `half_res`, `project`, and `back_project` are never used
[INFO] [stdout]    --> stenm-wasm/src/planar/camera.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Intrinsics {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn matrix(&self) -> Affine2<f32> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn multi_res(self, n: usize) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn half_res(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn project(&self, point: Point3) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn back_project(&self, point: Point2, depth: f32) -> Point3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn project(pose: &Extrinsics, point: Point3) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `back_project` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/camera.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn back_project(pose: &Extrinsics, point: Point3) -> Point3 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn smooth(img: &DMatrix<u8>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv_2d_direct_same` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn conv_2d_direct_same(img: &DMatrix<u8>, kernel: &DMatrix<f32>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn gradients_f32(img: &DMatrix<f32>) -> (DMatrix<f32>, DMatrix<f32>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv_2d_direct_same_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/filter.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn conv_2d_direct_same_f32(img: &DMatrix<f32>, kernel: &DMatrix<f32>) -> DMatrix<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian_kernel` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/filter.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn gaussian_kernel(sigma: f32, size: usize) -> DMatrix<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn centered(img: &na::DMatrix<u8>) -> (na::DMatrix<i16>, na::DMatrix<i16>) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_f32` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn centered_f32(img: &na::DMatrix<f32>) -> na::DMatrix<(f32, f32)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_4` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/gradients.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn centered_4(img: &na::DMatrix<u8>) -> (na::DMatrix<i16>, na::DMatrix<i16>) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_4_f32` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn centered_4_f32(img: &na::DMatrix<f32>) -> (na::DMatrix<f32>, na::DMatrix<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared_norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn squared_norm(grad_x: &na::DMatrix<i16>, grad_y: &na::DMatrix<i16>) -> na::DMatrix<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared_norm_direct` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn squared_norm_direct(im: &na::DMatrix<u8>) -> na::DMatrix<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_x` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn bloc_x(a: u8, b: u8, c: u8, d: u8) -> i16 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_y` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn bloc_y(a: u8, b: u8, c: u8, d: u8) -> i16 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloc_squared_norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/gradients.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn bloc_squared_norm(a: u8, b: u8, c: u8, d: u8) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on_border` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/height_map.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn is_on_border(k: usize, n: usize, m: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_from_matrix` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn image_from_matrix(mat: &DMatrix<u8>) -> GrayImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_from_matrix` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn rgb_from_matrix(mat: &DMatrix<(u8, u8, u8)>) -> RgbImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_from_matrix_transposed` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn image_from_matrix_transposed(mat: &DMatrix<u8>) -> ImageBuffer<Luma<u8>, &[u8]> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_from_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn matrix_from_image(img: GrayImage) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_from_rgb_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn matrix_from_rgb_image(img: RgbImage) -> DMatrix<(u8, u8, u8)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `green_mat_from_rgb_image` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interop.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn green_mat_from_rgb_image(img: RgbImage) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interpolation.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn linear<T>(x: f32, y: f32, image: &DMatrix<T>) -> f32
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_border` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/interpolation.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn nearest_border(x: f32, y: f32, width: usize, height: usize) -> (usize, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_u8_imgs` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/main.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn save_u8_imgs(dir: &Path, imgs: &[DMatrix<u8>]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mean_pyramid` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn mean_pyramid(max_levels: usize, mat: DMatrix<u8>) -> Vec<DMatrix<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `limited_sequence` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn limited_sequence<F: Fn(&T) -> Option<T>, T>(max_length: usize, data: T, f: F) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn sequence<F: FnMut(&T) -> Option<T>, T>(data: T, mut f: F) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `halve` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn halve<F, T, U>(mat: &DMatrix<T>, f: F) -> Option<DMatrix<U>>
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_squared_norm` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/multires.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn gradients_squared_norm(multires_mat: &[DMatrix<u8>]) -> Vec<DMatrix<u16>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradients_xy` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/multires.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn gradients_xy(multires_mat: &[DMatrix<u8>]) -> Vec<(DMatrix<i16>, DMatrix<i16>)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Continue` is never used
[INFO] [stdout]  --> stenm-wasm/src/planar/optimizer.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Continue {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Color` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:91:6
[INFO] [stdout]    |
[INFO] [stdout] 91 | type Color = (u8, u8, u8);
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `substract_ambiant` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn substract_ambiant(raw_imgs: &[DMatrix<f32>], ambiant: &DMatrix<f32>) -> Vec<DMatrix<f32>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_matrix` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn save_matrix<P: AsRef<Path>>(img: &DMatrix<f32>, path: P) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perspective_integration` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:298:4
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn perspective_integration(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dct_poisson` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn dct_poisson(p: &DMatrix<f32>, q: &DMatrix<f32>) -> DMatrix<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_column_major` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:402:4
[INFO] [stdout]     |
[INFO] [stdout] 402 | fn coordinates_column_major(shape: (usize, usize)) -> impl Iterator<Item = (usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_from_mask` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:409:4
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn coordinates_from_mask(mask: &DMatrix<bool>) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:415:4
[INFO] [stdout]     |
[INFO] [stdout] 415 | fn extract_sparse<T, I: Iterator<Item = bool>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shrink` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/pps.rs:450:4
[INFO] [stdout]     |
[INFO] [stdout] 450 | fn shrink<T: RealField>(alpha: T, x: T) -> T {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Levels` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/registration.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | type Levels<T> = Vec<T>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gray_images` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/registration.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn gray_images(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn merge_sparse(matrices: &[DMatrix<bool>]) -> DMatrix<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StepConfig` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | struct StepConfig {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Obs` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | struct Obs<'a> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Forward` and `Stop` are never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 227 | enum Continue {
[INFO] [stdout]     |      -------- variants in this enum
[INFO] [stdout] 228 |     Forward,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 229 |     Stop,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct State {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `step` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl State {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 243 |     /// Core iteration step of the algorithm.
[INFO] [stdout] 244 |     fn step(&mut self, config: &StepConfig, obs: &Obs) -> Continue {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinates_from_mask` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn coordinates_from_mask(mask: &DMatrix<bool>) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn extract_sparse<T, I: Iterator<Item = bool>>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_registered_gradients_full` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:362:4
[INFO] [stdout]     |
[INFO] [stdout] 362 | fn compute_registered_gradients_full(shape: (usize, usize), registered: &[f32]) -> Vec<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_registered_gradients_sparse` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn compute_registered_gradients_sparse(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forwards_compositional_step` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn forwards_compositional_step(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `projection_mat` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn projection_mat(params: &Vector6<f32>) -> Matrix3<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `projection_params` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:443:8
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub fn projection_params(mat: &Matrix3<f32>) -> Vector6<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_f32` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:459:4
[INFO] [stdout]     |
[INFO] [stdout] 459 | fn project_f32(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reproject_u8` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub fn reproject_u8(imgs: &[DMatrix<u8>], motion_vec: &[Vector6<f32>]) -> Vec<DMatrix<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `norm` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:496:4
[INFO] [stdout]     |
[INFO] [stdout] 496 | fn norm(matrix: &DMatrix<f32>) -> f32 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `norm_sqr` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:500:4
[INFO] [stdout]     |
[INFO] [stdout] 500 | fn norm_sqr(matrix: &DMatrix<f32>) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shrink` is never used
[INFO] [stdout]    --> stenm-wasm/src/planar/registration.rs:505:4
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn shrink<T: RealField>(alpha: T, x: T) -> T {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn select<T>(diff_threshold: T, gradients: &[DMatrix<T>]) -> Vec<DMatrix<bool>>
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_2x2_bloc` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn select_2x2_bloc<T, F>(pre_mask: &DMatrix<bool>, mat: &DMatrix<T>, f: F) -> DMatrix<bool>
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune_with_thresh` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/sparse.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn prune_with_thresh<T>(thresh: T, a: T, b: T, c: T, d: T) -> [bool; 4]
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_to_gray` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn rgb_to_gray(red: &DMatrix<u8>, green: &DMatrix<u8>, blue: &DMatrix<u8>) -> DMatrix<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reshape` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn reshape<N, R, C>(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]   --> stenm-wasm/src/planar/utils.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn transpose<T: Clone>(v: Vec<Vec<T>>) -> Vec<Vec<T>> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> stenm-wasm/src/planar/pps.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let imgs = raw_images.clone();
[INFO] [stdout]    |                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `[nalgebra::Matrix<f32, nalgebra::Dynamic, nalgebra::Dynamic, nalgebra::VecStorage<f32, nalgebra::Dynamic, nalgebra::Dynamic>>]` does not implement `Clone`, so calling `clone` on `&[nalgebra::Matrix<f32, nalgebra::Dynamic, nalgebra::Dynamic, nalgebra::VecStorage<f32, nalgebra::Dynamic, nalgebra::Dynamic>>]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 96 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nalgebra v0.28.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" "cfbd8171f401c368cffbfbcd99df117cb56ed2203f68f92d12045573e24e1975", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfbd8171f401c368cffbfbcd99df117cb56ed2203f68f92d12045573e24e1975", kill_on_drop: false }`
[INFO] [stdout] cfbd8171f401c368cffbfbcd99df117cb56ed2203f68f92d12045573e24e1975
