[INFO] cloning repository https://github.com/LeeSangMin1029/gesture-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LeeSangMin1029/gesture-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeSangMin1029%2Fgesture-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeSangMin1029%2Fgesture-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 55e1601025dc98541e3358540dcab82d9ca670a7
[INFO] checking LeeSangMin1029/gesture-rs against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeSangMin1029%2Fgesture-rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/LeeSangMin1029/gesture-rs
[INFO] finished tweaking git repo https://github.com/LeeSangMin1029/gesture-rs
[INFO] tweaked toml for git repo https://github.com/LeeSangMin1029/gesture-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LeeSangMin1029/gesture-rs on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/LeeSangMin1029/gesture-rs 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.111
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.111
[INFO] [stderr]   Downloaded nokhwa-core v0.1.8
[INFO] [stderr]   Downloaded nokhwa-bindings-windows v0.4.5
[INFO] [stderr]   Downloaded nokhwa v0.10.10
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.111
[INFO] [stderr]   Downloaded ort v2.0.0-rc.11
[INFO] [stderr]   Downloaded js-sys v0.3.88
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.111
[INFO] [stderr]   Downloaded ort-sys v2.0.0-rc.11
[INFO] [stderr]   Downloaded web-sys v0.3.88
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.61
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9
[INFO] running `Command { std: "docker" "start" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling webpki-root-certs v1.0.6
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking wayland-sys v0.29.5
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking avif-serialize v0.8.8
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]    Compiling ureq-proto v0.5.3
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking zune-jpeg v0.5.12
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling socks v0.3.4
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling nasm-rs v0.3.2
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling lzma-rust2 v0.15.7
[INFO] [stderr]    Compiling hmac-sha256 v1.1.14
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking libloading v0.9.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling mozjpeg-sys v2.2.3
[INFO] [stderr]    Compiling minifb v0.27.0
[INFO] [stderr]     Checking flume v0.11.1
[INFO] [stderr]     Checking ctrlc v3.5.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking tempfile v3.25.0
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking mozjpeg v0.10.13
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling ureq v3.2.0
[INFO] [stderr]    Compiling ort-sys v2.0.0-rc.11
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ort v2.0.0-rc.11
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking nokhwa-core v0.1.8
[INFO] [stderr]     Checking nokhwa-bindings-windows v0.4.5
[INFO] [stderr]     Checking nokhwa v0.10.10
[INFO] [stderr]     Checking gesture-control v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `find_monitor` is never used
[INFO] [stdout]   --> src/calibration.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl CalibrationConfig {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn find_monitor(&self, yaw: f32) -> Option<&MonitorZone> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `current_gesture` is never used
[INFO] [stdout]    --> src/controller.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl GestureController {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn current_gesture(&self) -> Gesture {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_SIZE` is never used
[INFO] [stdout]   --> src/hand.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const PALM_SIZE: usize = 192;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LANDMARK_SIZE` is never used
[INFO] [stdout]   --> src/hand.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const LANDMARK_SIZE: usize = 224;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SCORE_THRESH: f32 = 0.2;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMS_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const NMS_THRESH: f32 = 0.3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PINCH_RATIO_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PINCH_RATIO_THRESH: f32 = 0.25; // pinch_dist / hand_size ratio
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_ROI_SCALE` is never used
[INFO] [stdout]   --> src/hand.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const PALM_ROI_SCALE: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_ROI_SHIFT_Y` is never used
[INFO] [stdout]   --> src/hand.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const PALM_ROI_SHIFT_Y: f32 = -0.25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRACK_ROI_SCALE` is never used
[INFO] [stdout]   --> src/hand.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const TRACK_ROI_SCALE: f32 = 1.5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRACK_ROI_SHIFT_Y` is never used
[INFO] [stdout]   --> src/hand.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const TRACK_ROI_SHIFT_Y: f32 = -0.05;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Anchor` is never constructed
[INFO] [stdout]   --> src/hand.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Anchor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PalmDetection` is never constructed
[INFO] [stdout]   --> src/hand.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct PalmDetection {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Left` and `Right` are never constructed
[INFO] [stdout]   --> src/hand.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum HandLabel {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 58 |     Left,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandLabel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedRoi` is never constructed
[INFO] [stdout]   --> src/hand.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct RotatedRoi {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_radians` is never used
[INFO] [stdout]   --> src/hand.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn normalize_radians(angle: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_from_palm` is never used
[INFO] [stdout]   --> src/hand.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn roi_from_palm(palm: &PalmDetection, w: u32, h: u32) -> RotatedRoi {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_from_landmarks_rotated` is never used
[INFO] [stdout]    --> src/hand.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn roi_from_landmarks_rotated(pts: &[(f32, f32, f32); 21], w: u32, h: u32) -> RotatedRoi {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackedHand` is never constructed
[INFO] [stdout]    --> src/hand.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | struct TrackedHand {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `smooth` are never used
[INFO] [stdout]    --> src/hand.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl TrackedHand {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 167 |     fn new(roi: RotatedRoi) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn smooth(&mut self, points: &mut [(f32, f32, f32); 21], t: f32) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_distance` is never used
[INFO] [stdout]    --> src/hand.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn roi_distance(a: &RotatedRoi, b: &RotatedRoi) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HandDetector` is never constructed
[INFO] [stdout]    --> src/hand.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct HandDetector {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_tracking`, `detect`, `detect_palms`, and `detect_landmarks_roi` are never used
[INFO] [stdout]    --> src/hand.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl HandDetector {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 200 |     pub fn new(palm_model: &str, landmark_model: &str) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn is_tracking(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn detect(&mut self, rgb: &[u8], w: u32, h: u32) -> Result<Vec<HandResult>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn detect_palms(&mut self, rgb: &[u8], w: u32, h: u32) -> Result<Vec<PalmDetection>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     fn detect_landmarks_roi(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_anchors` is never used
[INFO] [stdout]    --> src/hand.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn generate_anchors() -> Vec<Anchor> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preprocess_image` is never used
[INFO] [stdout]    --> src/hand.rs:439:4
[INFO] [stdout]     |
[INFO] [stdout] 439 | fn preprocess_image(rgb: &[u8], w: u32, h: u32, target: usize) -> Array4<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `affine_crop` is never used
[INFO] [stdout]    --> src/hand.rs:463:4
[INFO] [stdout]     |
[INFO] [stdout] 463 | fn affine_crop(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_landmarks` is never used
[INFO] [stdout]    --> src/hand.rs:520:4
[INFO] [stdout]     |
[INFO] [stdout] 520 | fn transform_landmarks(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iou` is never used
[INFO] [stdout]    --> src/hand.rs:546:4
[INFO] [stdout]     |
[INFO] [stdout] 546 | fn iou(a: &PalmDetection, b: &PalmDetection) -> f32 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nms` is never used
[INFO] [stdout]    --> src/hand.rs:569:4
[INFO] [stdout]     |
[INFO] [stdout] 569 | fn nms(mut dets: Vec<PalmDetection>, thresh: f32) -> Vec<PalmDetection> {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid` is never used
[INFO] [stdout]    --> src/hand.rs:589:4
[INFO] [stdout]     |
[INFO] [stdout] 589 | fn sigmoid(x: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dist3d` is never used
[INFO] [stdout]    --> src/hand.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn dist3d(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dist3d_sq` is never used
[INFO] [stdout]    --> src/hand.rs:598:4
[INFO] [stdout]     |
[INFO] [stdout] 598 | fn dist3d_sq(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_sub` is never used
[INFO] [stdout]    --> src/hand.rs:602:4
[INFO] [stdout]     |
[INFO] [stdout] 602 | fn vec3_sub(a: (f32, f32, f32), b: (f32, f32, f32)) -> (f32, f32, f32) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_dot` is never used
[INFO] [stdout]    --> src/hand.rs:606:4
[INFO] [stdout]     |
[INFO] [stdout] 606 | fn vec3_dot(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_mag_sq` is never used
[INFO] [stdout]    --> src/hand.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn vec3_mag_sq(v: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_angle_deg` is never used
[INFO] [stdout]    --> src/hand.rs:615:4
[INFO] [stdout]     |
[INFO] [stdout] 615 | fn vec3_angle_deg(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hand_ref_size` is never used
[INFO] [stdout]    --> src/hand.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn hand_ref_size(pts: &[(f32, f32, f32); 21]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `landmarks_in_frame` is never used
[INFO] [stdout]    --> src/hand.rs:627:4
[INFO] [stdout]     |
[INFO] [stdout] 627 | fn landmarks_in_frame(pts: &[(f32, f32, f32); 21]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_handedness` is never used
[INFO] [stdout]    --> src/hand.rs:635:4
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn estimate_handedness(pts: &[(f32, f32, f32); 21]) -> HandLabel {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finger_extended` is never used
[INFO] [stdout]    --> src/hand.rs:652:4
[INFO] [stdout]     |
[INFO] [stdout] 652 | fn finger_extended(pts: &[(f32, f32, f32); 21], tip: usize, pip: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumb_extended` is never used
[INFO] [stdout]    --> src/hand.rs:663:4
[INFO] [stdout]     |
[INFO] [stdout] 663 | fn is_thumb_extended(pts: &[(f32, f32, f32); 21], _label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumbs_up` is never used
[INFO] [stdout]    --> src/hand.rs:688:4
[INFO] [stdout]     |
[INFO] [stdout] 688 | fn is_thumbs_up(pts: &[(f32, f32, f32); 21], _label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumbs_down` is never used
[INFO] [stdout]    --> src/hand.rs:732:4
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn is_thumbs_down(pts: &[(f32, f32, f32); 21], label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_two_fingers` is never used
[INFO] [stdout]    --> src/hand.rs:754:4
[INFO] [stdout]     |
[INFO] [stdout] 754 | fn is_two_fingers(pts: &[(f32, f32, f32); 21]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_fingers` is never used
[INFO] [stdout]    --> src/hand.rs:761:4
[INFO] [stdout]     |
[INFO] [stdout] 761 | fn count_fingers(pts: &[(f32, f32, f32); 21], label: HandLabel) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_gesture` is never used
[INFO] [stdout]    --> src/hand.rs:774:4
[INFO] [stdout]     |
[INFO] [stdout] 774 | fn classify_gesture(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KvmClient` is never constructed
[INFO] [stdout]   --> src/kvm.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct KvmClient {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `connect` and `send_batch` are never used
[INFO] [stdout]   --> src/kvm.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl KvmClient {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn connect(addr: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn send_batch(&mut self, events: &[InputEvent]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_wire_event` is never used
[INFO] [stdout]   --> src/kvm.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn write_wire_event(w: &mut impl Write, event: &InputEvent) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `button_str` is never used
[INFO] [stdout]   --> src/kvm.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn button_str(b: MouseButton) -> &'static str {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_monitor` is never used
[INFO] [stdout]   --> src/calibration.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl CalibrationConfig {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn find_monitor(&self, yaw: f32) -> Option<&MonitorZone> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `current_gesture` is never used
[INFO] [stdout]    --> src/controller.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl GestureController {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn current_gesture(&self) -> Gesture {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_SIZE` is never used
[INFO] [stdout]   --> src/hand.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const PALM_SIZE: usize = 192;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LANDMARK_SIZE` is never used
[INFO] [stdout]   --> src/hand.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const LANDMARK_SIZE: usize = 224;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SCORE_THRESH: f32 = 0.2;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMS_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const NMS_THRESH: f32 = 0.3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PINCH_RATIO_THRESH` is never used
[INFO] [stdout]   --> src/hand.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PINCH_RATIO_THRESH: f32 = 0.25; // pinch_dist / hand_size ratio
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_ROI_SCALE` is never used
[INFO] [stdout]   --> src/hand.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const PALM_ROI_SCALE: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PALM_ROI_SHIFT_Y` is never used
[INFO] [stdout]   --> src/hand.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const PALM_ROI_SHIFT_Y: f32 = -0.25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRACK_ROI_SCALE` is never used
[INFO] [stdout]   --> src/hand.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const TRACK_ROI_SCALE: f32 = 1.5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRACK_ROI_SHIFT_Y` is never used
[INFO] [stdout]   --> src/hand.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const TRACK_ROI_SHIFT_Y: f32 = -0.05;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Anchor` is never constructed
[INFO] [stdout]   --> src/hand.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Anchor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PalmDetection` is never constructed
[INFO] [stdout]   --> src/hand.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct PalmDetection {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Left` and `Right` are never constructed
[INFO] [stdout]   --> src/hand.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum HandLabel {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 58 |     Left,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandLabel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedRoi` is never constructed
[INFO] [stdout]   --> src/hand.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct RotatedRoi {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_radians` is never used
[INFO] [stdout]   --> src/hand.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn normalize_radians(angle: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_from_palm` is never used
[INFO] [stdout]   --> src/hand.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn roi_from_palm(palm: &PalmDetection, w: u32, h: u32) -> RotatedRoi {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_from_landmarks_rotated` is never used
[INFO] [stdout]    --> src/hand.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn roi_from_landmarks_rotated(pts: &[(f32, f32, f32); 21], w: u32, h: u32) -> RotatedRoi {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackedHand` is never constructed
[INFO] [stdout]    --> src/hand.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | struct TrackedHand {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `smooth` are never used
[INFO] [stdout]    --> src/hand.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl TrackedHand {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 167 |     fn new(roi: RotatedRoi) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn smooth(&mut self, points: &mut [(f32, f32, f32); 21], t: f32) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roi_distance` is never used
[INFO] [stdout]    --> src/hand.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn roi_distance(a: &RotatedRoi, b: &RotatedRoi) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HandDetector` is never constructed
[INFO] [stdout]    --> src/hand.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct HandDetector {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_tracking`, `detect`, `detect_palms`, and `detect_landmarks_roi` are never used
[INFO] [stdout]    --> src/hand.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl HandDetector {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 200 |     pub fn new(palm_model: &str, landmark_model: &str) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn is_tracking(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn detect(&mut self, rgb: &[u8], w: u32, h: u32) -> Result<Vec<HandResult>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn detect_palms(&mut self, rgb: &[u8], w: u32, h: u32) -> Result<Vec<PalmDetection>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     fn detect_landmarks_roi(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_anchors` is never used
[INFO] [stdout]    --> src/hand.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn generate_anchors() -> Vec<Anchor> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preprocess_image` is never used
[INFO] [stdout]    --> src/hand.rs:439:4
[INFO] [stdout]     |
[INFO] [stdout] 439 | fn preprocess_image(rgb: &[u8], w: u32, h: u32, target: usize) -> Array4<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `affine_crop` is never used
[INFO] [stdout]    --> src/hand.rs:463:4
[INFO] [stdout]     |
[INFO] [stdout] 463 | fn affine_crop(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_landmarks` is never used
[INFO] [stdout]    --> src/hand.rs:520:4
[INFO] [stdout]     |
[INFO] [stdout] 520 | fn transform_landmarks(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iou` is never used
[INFO] [stdout]    --> src/hand.rs:546:4
[INFO] [stdout]     |
[INFO] [stdout] 546 | fn iou(a: &PalmDetection, b: &PalmDetection) -> f32 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nms` is never used
[INFO] [stdout]    --> src/hand.rs:569:4
[INFO] [stdout]     |
[INFO] [stdout] 569 | fn nms(mut dets: Vec<PalmDetection>, thresh: f32) -> Vec<PalmDetection> {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid` is never used
[INFO] [stdout]    --> src/hand.rs:589:4
[INFO] [stdout]     |
[INFO] [stdout] 589 | fn sigmoid(x: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dist3d` is never used
[INFO] [stdout]    --> src/hand.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn dist3d(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dist3d_sq` is never used
[INFO] [stdout]    --> src/hand.rs:598:4
[INFO] [stdout]     |
[INFO] [stdout] 598 | fn dist3d_sq(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_sub` is never used
[INFO] [stdout]    --> src/hand.rs:602:4
[INFO] [stdout]     |
[INFO] [stdout] 602 | fn vec3_sub(a: (f32, f32, f32), b: (f32, f32, f32)) -> (f32, f32, f32) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_dot` is never used
[INFO] [stdout]    --> src/hand.rs:606:4
[INFO] [stdout]     |
[INFO] [stdout] 606 | fn vec3_dot(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_mag_sq` is never used
[INFO] [stdout]    --> src/hand.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn vec3_mag_sq(v: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec3_angle_deg` is never used
[INFO] [stdout]    --> src/hand.rs:615:4
[INFO] [stdout]     |
[INFO] [stdout] 615 | fn vec3_angle_deg(a: (f32, f32, f32), b: (f32, f32, f32)) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hand_ref_size` is never used
[INFO] [stdout]    --> src/hand.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn hand_ref_size(pts: &[(f32, f32, f32); 21]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `landmarks_in_frame` is never used
[INFO] [stdout]    --> src/hand.rs:627:4
[INFO] [stdout]     |
[INFO] [stdout] 627 | fn landmarks_in_frame(pts: &[(f32, f32, f32); 21]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_handedness` is never used
[INFO] [stdout]    --> src/hand.rs:635:4
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn estimate_handedness(pts: &[(f32, f32, f32); 21]) -> HandLabel {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finger_extended` is never used
[INFO] [stdout]    --> src/hand.rs:652:4
[INFO] [stdout]     |
[INFO] [stdout] 652 | fn finger_extended(pts: &[(f32, f32, f32); 21], tip: usize, pip: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumb_extended` is never used
[INFO] [stdout]    --> src/hand.rs:663:4
[INFO] [stdout]     |
[INFO] [stdout] 663 | fn is_thumb_extended(pts: &[(f32, f32, f32); 21], _label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumbs_up` is never used
[INFO] [stdout]    --> src/hand.rs:688:4
[INFO] [stdout]     |
[INFO] [stdout] 688 | fn is_thumbs_up(pts: &[(f32, f32, f32); 21], _label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_thumbs_down` is never used
[INFO] [stdout]    --> src/hand.rs:732:4
[INFO] [stdout]     |
[INFO] [stdout] 732 | fn is_thumbs_down(pts: &[(f32, f32, f32); 21], label: HandLabel) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_two_fingers` is never used
[INFO] [stdout]    --> src/hand.rs:754:4
[INFO] [stdout]     |
[INFO] [stdout] 754 | fn is_two_fingers(pts: &[(f32, f32, f32); 21]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_fingers` is never used
[INFO] [stdout]    --> src/hand.rs:761:4
[INFO] [stdout]     |
[INFO] [stdout] 761 | fn count_fingers(pts: &[(f32, f32, f32); 21], label: HandLabel) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_gesture` is never used
[INFO] [stdout]    --> src/hand.rs:774:4
[INFO] [stdout]     |
[INFO] [stdout] 774 | fn classify_gesture(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KvmClient` is never constructed
[INFO] [stdout]   --> src/kvm.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct KvmClient {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `connect` and `send_batch` are never used
[INFO] [stdout]   --> src/kvm.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl KvmClient {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn connect(addr: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn send_batch(&mut self, events: &[InputEvent]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_wire_event` is never used
[INFO] [stdout]   --> src/kvm.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn write_wire_event(w: &mut impl Write, event: &InputEvent) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `button_str` is never used
[INFO] [stdout]   --> src/kvm.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn button_str(b: MouseButton) -> &'static str {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `tokio`
[INFO] [stderr]   --> Cargo.toml:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 | [dependencies.tokio]
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tokio`
[INFO] [stderr] warning: `gesture-control` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9", kill_on_drop: false }`
[INFO] [stdout] b693e07a13798214bdd11e6af7181fa38775c6cc1ddae9d27db0944309dfb8b9
