[INFO] cloning repository https://github.com/mangathemango/wall3 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mangathemango/wall3" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmangathemango%2Fwall3", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmangathemango%2Fwall3'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c4166de983163fe5b6bc4c26159cce3adb8f08a8 [INFO] checking mangathemango/wall3 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmangathemango%2Fwall3" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mangathemango/wall3 [INFO] finished tweaking git repo https://github.com/mangathemango/wall3 [INFO] tweaked toml for git repo https://github.com/mangathemango/wall3 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mangathemango/wall3 on toolchain a5689b034ad287112f709693384a37f1377eb9cc [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mangathemango/wall3 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104 [INFO] running `Command { std: "docker" "start" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104", 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" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104", 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" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Checking smallvec v1.16.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.23 [INFO] [stderr] Checking hashbrown v0.17.1 [INFO] [stderr] Compiling crossbeam-epoch v0.9.21 [INFO] [stderr] Compiling crossbeam-deque v0.8.8 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling syn v3.0.5 [INFO] [stderr] Checking mio v1.2.3 [INFO] [stderr] Compiling cc v1.4.6 [INFO] [stderr] Compiling aws-lc-rs v1.18.1 [INFO] [stderr] Checking num-integer v0.1.47 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling zerocopy v0.8.57 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Checking bytemuck v1.25.2 [INFO] [stderr] Compiling instability v0.3.13 [INFO] [stderr] Checking futures-task v0.3.34 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling rustls v0.23.44 [INFO] [stderr] Compiling pulp v0.22.3 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking compact_str v0.9.1 [INFO] [stderr] Checking unicode-truncate v2.0.1 [INFO] [stderr] Checking futures-util v0.3.34 [INFO] [stderr] Checking crc32fast v1.5.2 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking no_std_io2 v0.9.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Checking bitstream-io v4.10.0 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking num-bigint v0.4.8 [INFO] [stderr] Checking flate2 v1.1.10 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking futures-channel v0.3.34 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Checking raw-cpuid v11.6.0 [INFO] [stderr] Checking imgref v1.12.3 [INFO] [stderr] Checking pulp-wasm-simd-flag v0.1.1 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking time v0.3.55 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking avif-serialize v0.8.9 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking lru v0.18.4 [INFO] [stderr] Checking rayon-core v1.13.0 [INFO] [stderr] Checking indexmap v2.14.2 [INFO] [stderr] Compiling encoding_rs v0.8.41 [INFO] [stderr] Checking line-clipping v0.3.8 [INFO] [stderr] Compiling g2poly v1.2.2 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Checking fax v0.2.7 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Checking rustls-native-certs v0.8.4 [INFO] [stderr] Checking rayon v1.12.0 [INFO] [stderr] Checking gif v0.14.2 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Checking cpufeatures v0.3.1 [INFO] [stderr] Checking simdutf8 v0.1.5 [INFO] [stderr] Compiling multiversion_no_op v1.0.0 [INFO] [stderr] Checking core_detect v1.0.0 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking chacha20 v0.10.2 [INFO] [stderr] Checking libudev v0.3.0 [INFO] [stderr] Checking lru v0.16.4 [INFO] [stderr] Checking chrono v0.4.45 [INFO] [stderr] Checking rand v0.10.2 [INFO] [stderr] Checking rscam v0.5.5 [INFO] [stderr] Checking sysinfo v0.39.6 [INFO] [stderr] Checking glam v0.32.1 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Compiling aws-lc-sys v0.45.0 [INFO] [stderr] Checking evdev v0.13.2 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Compiling darling_core v0.24.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling thiserror-impl v2.0.20 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling multiversion-macros v0.9.0 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling strum_macros v0.28.0 [INFO] [stderr] Checking tokio v1.53.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.57 [INFO] [stderr] Checking thiserror v2.0.20 [INFO] [stderr] Checking kasuari v0.4.12 [INFO] [stderr] Compiling profiling-procmacros v1.0.18 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Checking profiling v1.0.18 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking multiversion v0.9.0 [INFO] [stderr] Compiling g2gen v1.2.2 [INFO] [stderr] Checking zerofrom v0.1.8 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking g2p v1.2.2 [INFO] [stderr] Checking zerovec v0.11.8 [INFO] [stderr] Checking zerotrie v0.2.5 [INFO] [stderr] Checking unescaper v0.1.10 [INFO] [stderr] Checking serialport v4.10.1 [INFO] [stderr] Checking av-scenechange v0.14.1 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking rav1e v0.8.1 [INFO] [stderr] Checking tinystr v0.8.4 [INFO] [stderr] Checking potential_utf v0.1.6 [INFO] [stderr] Compiling darling_macro v0.24.1 [INFO] [stderr] Checking icu_collections v2.3.0 [INFO] [stderr] Checking icu_locale_core v2.3.0 [INFO] [stderr] Compiling darling v0.24.1 [INFO] [stderr] Checking strum v0.28.0 [INFO] [stderr] Checking ratatui-core v0.1.2 [INFO] [stderr] Checking icu_provider v2.3.1 [INFO] [stderr] Checking serde v1.0.229 [INFO] [stderr] Checking icu_normalizer v2.3.0 [INFO] [stderr] Checking icu_properties v2.3.0 [INFO] [stderr] Checking ratatui-widgets v0.3.2 [INFO] [stderr] Checking ratatui-crossterm v0.1.2 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking ratatui-macros v0.7.2 [INFO] [stderr] Checking ratatui v0.30.2 [INFO] [stderr] Checking tokio-util v0.7.19 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking ravif v0.13.0 [INFO] [stderr] Checking h2 v0.4.19 [INFO] [stderr] Checking tower-http v0.6.11 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking tiff v0.11.3 [INFO] [stderr] Checking exr v1.74.2 [INFO] [stderr] Checking rustls-webpki v0.103.15 [INFO] [stderr] Checking hyper v1.11.1 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Checking tokio-rustls v0.26.5 [INFO] [stderr] Checking rustls-platform-verifier v0.7.0 [INFO] [stderr] Checking hyper-rustls v0.27.9 [INFO] [stderr] Checking reqwest v0.13.5 [INFO] [stderr] Checking rqrr v0.10.1 [INFO] [stderr] Checking wall3 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/devices/maixcam.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | time::{Duration, Instant}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `driver::MaixcamDriver`, `message::MaixcamMessage`, and `state::MaixcamState` [INFO] [stdout] --> src/devices/maixcam.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | driver::MaixcamDriver, message::MaixcamMessage, state::MaixcamState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/devices/qr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `driver::QrDriver` [INFO] [stdout] --> src/devices/qr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use driver::QrDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ROBOT` [INFO] [stdout] --> src/devices/qr.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ROBOT; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ROBOT` [INFO] [stdout] --> src/devices/stm32.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ROBOT; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::controller::Stm32Controller` [INFO] [stdout] --> src/devices/stm32.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::devices::stm32::controller::Stm32Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::driver::Stm32Driver` [INFO] [stdout] --> src/devices/stm32.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::devices::stm32::driver::Stm32Driver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::state::Stm32State` [INFO] [stdout] --> src/devices/stm32.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::devices::stm32::state::Stm32State; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/devices/stm32.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/devices/stm32.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pid::PidController` [INFO] [stdout] --> src/math.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use pid::PidController; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/devices/maixcam.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | time::{Duration, Instant}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pure_pursuit::PurePursuitController` [INFO] [stdout] --> src/math.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use pure_pursuit::PurePursuitController; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `driver::MaixcamDriver`, `message::MaixcamMessage`, and `state::MaixcamState` [INFO] [stdout] --> src/devices/maixcam.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | driver::MaixcamDriver, message::MaixcamMessage, state::MaixcamState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/main.rs:21:66 [INFO] [stdout] | [INFO] [stdout] 21 | use std::{str::FromStr, sync::LazyLock, thread, time::{Duration, Instant}}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashboard::spawn_dashboard_thread` [INFO] [stdout] --> src/main.rs:27:176 [INFO] [stdout] | [INFO] [stdout] 27 | ...{action_executor::spawn_action_executor_thread, dashboard::spawn_dashboard_thread, gyro::spawn_gyro_thread, maixcam::spawn_maixca... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/devices/qr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `driver::QrDriver` [INFO] [stdout] --> src/devices/qr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use driver::QrDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ROBOT` [INFO] [stdout] --> src/devices/qr.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ROBOT; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ROBOT` [INFO] [stdout] --> src/devices/stm32.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ROBOT; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::controller::Stm32Controller` [INFO] [stdout] --> src/devices/stm32.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::devices::stm32::controller::Stm32Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::driver::Stm32Driver` [INFO] [stdout] --> src/devices/stm32.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::devices::stm32::driver::Stm32Driver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::devices::stm32::state::Stm32State` [INFO] [stdout] --> src/devices/stm32.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::devices::stm32::state::Stm32State; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/devices/stm32.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/devices/stm32.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pid::PidController` [INFO] [stdout] --> src/math.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use pid::PidController; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pure_pursuit::PurePursuitController` [INFO] [stdout] --> src/math.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use pure_pursuit::PurePursuitController; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/main.rs:21:66 [INFO] [stdout] | [INFO] [stdout] 21 | use std::{str::FromStr, sync::LazyLock, thread, time::{Duration, Instant}}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashboard::spawn_dashboard_thread` [INFO] [stdout] --> src/main.rs:27:176 [INFO] [stdout] | [INFO] [stdout] 27 | ...{action_executor::spawn_action_executor_thread, dashboard::spawn_dashboard_thread, gyro::spawn_gyro_thread, maixcam::spawn_maixca... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RotateArm` is never constructed [INFO] [stdout] --> src/control/actions/rotate_arm.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct RotateArm { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl RotateArm { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 16 | pub fn to_angle(target_angle: u8) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn slow(mut self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn to_preset(target_position: ArmRotationPreset) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn to_storage(index: u8) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn to_placement(color: MaixcamCircleColor) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn to_source() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn to_calibration() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn idle() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArmRotationPreset` is never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | pub enum ArmRotationPreset { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_angle` is never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl ArmRotationPreset { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 120 | pub fn to_angle(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `LowerArm` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub type LowerArm = LiftArm; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LiftArm` is never constructed [INFO] [stdout] --> src/control/actions/lift_arm.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct LiftArm { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl LiftArm { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 16 | pub fn to_preset(preset: ArmLiftPreset) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn up() -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn to_source() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn to_storage_placing() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn to_storage_grabbing() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn to_ground(color: MaixcamCircleColor) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn to_stacked() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArmLiftPreset` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | pub enum ArmLiftPreset { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_position` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl ArmLiftPreset { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 91 | pub fn to_position(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `then` is never used [INFO] [stdout] --> src/control/actions/general.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Sequence { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn then(mut self, action: A) -> Self [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuntimeSequence` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct RuntimeSequence { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/general.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl RuntimeSequence { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 101 | pub fn new(f: F) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WaitUntil` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub struct WaitUntil { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/general.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 215 | impl WaitUntil { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 216 | pub fn new(condition_name: &str, true_time: Duration, condition: F) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RotateArm` is never constructed [INFO] [stdout] --> src/control/actions/rotate_arm.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct RotateArm { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParallelSequence` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct ParallelSequence { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `push` are never used [INFO] [stdout] --> src/control/actions/general.rs:259:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl ParallelSequence { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 259 | pub fn new(name: &str) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn push(&mut self, action: A) [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/stop.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl StopMovement { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 8 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `all` is never used [INFO] [stdout] --> src/control/actions/express.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Expression { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 47 | pub fn all() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl RotateArm { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 16 | pub fn to_angle(target_angle: u8) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn slow(mut self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn to_preset(target_position: ArmRotationPreset) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn to_storage(index: u8) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn to_placement(color: MaixcamCircleColor) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn to_source() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn to_calibration() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn idle() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pursuit_pose` is never read [INFO] [stdout] --> src/control/states/odometry.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct OdometryState { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub pursuit_pose: Pose, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OdometryState` 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: methods `set_current_rotation`, `add_gyro_offset`, and `set_current_pose` are never used [INFO] [stdout] --> src/control/states/odometry.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl OdometryState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn set_current_rotation(&mut self, rotation: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn add_gyro_offset(&mut self, offset: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_current_pose(&mut self, pose: Pose) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/dashboard/app.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn start() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/dashboard/app.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn run() -> Result<(), io::Error> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArmRotationPreset` is never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | pub enum ArmRotationPreset { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `paragraph` is never used [INFO] [stdout] --> src/dashboard/helpers.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn paragraph(f: &mut Frame, area: Rect, title: &str, text: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_temperature` is never used [INFO] [stdout] --> src/dashboard/helpers.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn read_temperature() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_angle` is never used [INFO] [stdout] --> src/control/actions/rotate_arm.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl ArmRotationPreset { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 120 | pub fn to_angle(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ui` is never used [INFO] [stdout] --> src/dashboard/layout.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ui(f: &mut Frame) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `LowerArm` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub type LowerArm = LiftArm; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_compass` is never used [INFO] [stdout] --> src/dashboard/widgets/compass.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn draw_compass(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LiftArm` is never constructed [INFO] [stdout] --> src/control/actions/lift_arm.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct LiftArm { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_compass_inner` is never used [INFO] [stdout] --> src/dashboard/widgets/compass.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn draw_compass_inner(f: &mut Frame, area: Rect, yaw: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_controller` is never used [INFO] [stdout] --> src/dashboard/widgets/controller.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn draw_controller(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_gyro` is never used [INFO] [stdout] --> src/dashboard/widgets/gyro.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn draw_gyro(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_gyro_text` is never used [INFO] [stdout] --> src/dashboard/widgets/gyro.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn draw_gyro_text(f: &mut Frame, area: Rect, g: &GyroState) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_maixcam` is never used [INFO] [stdout] --> src/dashboard/widgets/maixcam.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_maixcam(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl LiftArm { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 16 | pub fn to_preset(preset: ArmLiftPreset) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn up() -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn to_source() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn to_storage_placing() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn to_storage_grabbing() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn to_ground(color: MaixcamCircleColor) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn to_stacked() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_odometry` is never used [INFO] [stdout] --> src/dashboard/widgets/odometry.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_odometry(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArmLiftPreset` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | pub enum ArmLiftPreset { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_qr` is never used [INFO] [stdout] --> src/dashboard/widgets/qr.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_qr(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_stm32` is never used [INFO] [stdout] --> src/dashboard/widgets/stm32.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_stm32(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_position` is never used [INFO] [stdout] --> src/control/actions/lift_arm.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl ArmLiftPreset { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 91 | pub fn to_position(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_system` is never used [INFO] [stdout] --> src/dashboard/widgets/system.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn draw_system(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `then` is never used [INFO] [stdout] --> src/control/actions/general.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Sequence { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn then(mut self, action: A) -> Self [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RuntimeSequence` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct RuntimeSequence { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/general.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl RuntimeSequence { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 101 | pub fn new(f: F) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WaitUntil` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub struct WaitUntil { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/general.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 215 | impl WaitUntil { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 216 | pub fn new(condition_name: &str, true_time: Duration, condition: F) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParallelSequence` is never constructed [INFO] [stdout] --> src/control/actions/general.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct ParallelSequence { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `push` are never used [INFO] [stdout] --> src/control/actions/general.rs:259:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl ParallelSequence { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 259 | pub fn new(name: &str) -> Self [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn push(&mut self, action: A) [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/control/actions/stop.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl StopMovement { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 8 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `all` is never used [INFO] [stdout] --> src/control/actions/express.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Expression { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 47 | pub fn all() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kind` is never read [INFO] [stdout] --> src/devices/maixcam/circle.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct MaixcamCircle { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | pub kind: MaixcamCircleKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MaixcamCircle` 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: methods `find_priority_ring` and `find_ring` are never used [INFO] [stdout] --> src/devices/maixcam/state.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl MaixcamState { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn find_priority_ring( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn find_ring(&self, color: &MaixcamCircleColor) -> Option<&MaixcamCircle> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/devices/qr/state.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl QrState { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SetYawServoAngle`, `SetClawServoAngle`, `SetVerticalArmPosition`, and `SetHorizontalArmPosition` are never constructed [INFO] [stdout] --> src/devices/stm32/command.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Stm32Command { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 5 | /// angle: 0-180 [INFO] [stdout] 6 | SetYawServoAngle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | SetClawServoAngle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | SetVerticalArmPosition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | SetHorizontalArmPosition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stm32Command` 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: methods `set_yaw_servo`, `set_vertical_arm_position`, `set_horizontal_arm_position`, and `set_claw_servo` are never used [INFO] [stdout] --> src/devices/stm32/controller.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Stm32Controller { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn set_yaw_servo(&self, angle: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn set_vertical_arm_position(&self, position: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn set_horizontal_arm_position(&self, position: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn set_claw_servo(&self, angle: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pursuit_pose` is never read [INFO] [stdout] --> src/control/states/odometry.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct OdometryState { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub pursuit_pose: Pose, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OdometryState` 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: methods `set_current_rotation`, `add_gyro_offset`, and `set_current_pose` are never used [INFO] [stdout] --> src/control/states/odometry.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl OdometryState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn set_current_rotation(&mut self, rotation: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn add_gyro_offset(&mut self, offset: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_current_pose(&mut self, pose: Pose) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Route` is never constructed [INFO] [stdout] --> src/math/route.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Route { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/dashboard/app.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn start() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/dashboard/app.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn run() -> Result<(), io::Error> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `paragraph` is never used [INFO] [stdout] --> src/dashboard/helpers.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn paragraph(f: &mut Frame, area: Rect, title: &str, text: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_temperature` is never used [INFO] [stdout] --> src/dashboard/helpers.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn read_temperature() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ui` is never used [INFO] [stdout] --> src/dashboard/layout.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn ui(f: &mut Frame) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/math/route.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Route { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 9 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn sample(&mut self, spacing: f32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn sample_points(points: &Vec, spacing: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn push(&mut self, point: Pose) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn first(&self) -> Option<&Pose> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn last(&self) -> Option<&Pose> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_compass` is never used [INFO] [stdout] --> src/dashboard/widgets/compass.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn draw_compass(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PidController` is never constructed [INFO] [stdout] --> src/math/pid.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct PidController { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_compass_inner` is never used [INFO] [stdout] --> src/dashboard/widgets/compass.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn draw_compass_inner(f: &mut Frame, area: Rect, yaw: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_controller` is never used [INFO] [stdout] --> src/dashboard/widgets/controller.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn draw_controller(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, and `is_settled_for` are never used [INFO] [stdout] --> src/math/pid.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl PidController { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 44 | pub fn new(kp: f32, ki: f32, kd: f32, tolerance: f32, max_integral: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn update(&mut self, current_error: f32, dt: Duration) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn is_settled_for(&self, duration: Duration) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_gyro` is never used [INFO] [stdout] --> src/dashboard/widgets/gyro.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn draw_gyro(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_gyro_text` is never used [INFO] [stdout] --> src/dashboard/widgets/gyro.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn draw_gyro_text(f: &mut Frame, area: Rect, g: &GyroState) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `difference`, `scale`, `with_rotation`, `with_position`, and `to_components` are never used [INFO] [stdout] --> src/math/pose.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Pose { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 26 | pub fn difference(self, target: Pose) -> Pose { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn scale(mut self, scale: f32) -> Pose { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn with_rotation(mut self, rotation: f32) -> Pose { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn with_position(mut self, position: Vec2) -> Pose { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn to_components(&self) -> (Vec2, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_maixcam` is never used [INFO] [stdout] --> src/dashboard/widgets/maixcam.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_maixcam(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_odometry` is never used [INFO] [stdout] --> src/dashboard/widgets/odometry.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_odometry(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PurePursuitController` is never constructed [INFO] [stdout] --> src/math/pure_pursuit.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PurePursuitController { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_qr` is never used [INFO] [stdout] --> src/dashboard/widgets/qr.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_qr(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/math/pure_pursuit.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl PurePursuitController { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 10 | pub fn new(lookahead_distance: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn update(&mut self, current_pose: Pose, route: &Route) -> Pose { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_stm32` is never used [INFO] [stdout] --> src/dashboard/widgets/stm32.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn draw_stm32(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_system` is never used [INFO] [stdout] --> src/dashboard/widgets/system.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn draw_system(f: &mut Frame, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/math/twist.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Twist { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn new(linear: Vec2, omega: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `maixcam_state`, `qr_state`, and `odometry_state` are never used [INFO] [stdout] --> src/robot.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Robot { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn maixcam_state(&self) -> Guard> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn qr_state(&self) -> QrState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn odometry_state(&self) -> OdometryState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_dashboard_thread` is never used [INFO] [stdout] --> src/tasks/dashboard.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn spawn_dashboard_thread() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kind` is never read [INFO] [stdout] --> src/devices/maixcam/circle.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct MaixcamCircle { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | pub kind: MaixcamCircleKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MaixcamCircle` 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: methods `find_priority_ring` and `find_ring` are never used [INFO] [stdout] --> src/devices/maixcam/state.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl MaixcamState { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn find_priority_ring( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn find_ring(&self, color: &MaixcamCircleColor) -> Option<&MaixcamCircle> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/devices/qr/state.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl QrState { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SetYawServoAngle`, `SetClawServoAngle`, `SetVerticalArmPosition`, and `SetHorizontalArmPosition` are never constructed [INFO] [stdout] --> src/devices/stm32/command.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Stm32Command { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 5 | /// angle: 0-180 [INFO] [stdout] 6 | SetYawServoAngle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | SetClawServoAngle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | SetVerticalArmPosition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | SetHorizontalArmPosition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stm32Command` 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: methods `set_yaw_servo`, `set_vertical_arm_position`, `set_horizontal_arm_position`, and `set_claw_servo` are never used [INFO] [stdout] --> src/devices/stm32/controller.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Stm32Controller { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn set_yaw_servo(&self, angle: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn set_vertical_arm_position(&self, position: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn set_horizontal_arm_position(&self, position: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn set_claw_servo(&self, angle: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Route` is never constructed [INFO] [stdout] --> src/math/route.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Route { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/math/route.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Route { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 9 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn sample(&mut self, spacing: f32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn sample_points(points: &Vec, spacing: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn push(&mut self, point: Pose) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn first(&self) -> Option<&Pose> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn last(&self) -> Option<&Pose> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PidController` is never constructed [INFO] [stdout] --> src/math/pid.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct PidController { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, and `is_settled_for` are never used [INFO] [stdout] --> src/math/pid.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl PidController { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 44 | pub fn new(kp: f32, ki: f32, kd: f32, tolerance: f32, max_integral: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn update(&mut self, current_error: f32, dt: Duration) -> f32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn is_settled_for(&self, duration: Duration) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `difference`, `scale`, `with_rotation`, `with_position`, and `to_components` are never used [INFO] [stdout] --> src/math/pose.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Pose { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 26 | pub fn difference(self, target: Pose) -> Pose { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn scale(mut self, scale: f32) -> Pose { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn with_rotation(mut self, rotation: f32) -> Pose { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn with_position(mut self, position: Vec2) -> Pose { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn to_components(&self) -> (Vec2, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PurePursuitController` is never constructed [INFO] [stdout] --> src/math/pure_pursuit.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PurePursuitController { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/math/pure_pursuit.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl PurePursuitController { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 10 | pub fn new(lookahead_distance: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn update(&mut self, current_pose: Pose, route: &Route) -> Pose { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/math/twist.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Twist { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn new(linear: Vec2, omega: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `maixcam_state`, `qr_state`, and `odometry_state` are never used [INFO] [stdout] --> src/robot.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Robot { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn maixcam_state(&self) -> Guard> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn qr_state(&self) -> QrState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn odometry_state(&self) -> OdometryState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spawn_dashboard_thread` is never used [INFO] [stdout] --> src/tasks/dashboard.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn spawn_dashboard_thread() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/gyro/driver.rs:48:33 [INFO] [stdout] | [INFO] [stdout] 48 | ... format!("Gyro read frame error: {}", e).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: `#[deny(self_type_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/qr/driver/hid.rs:39:59 [INFO] [stdout] | [INFO] [stdout] 39 | device: DriverHIDDevice::Disconnected(format!("Env error: {}", e).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/qr/driver/hid.rs:48:25 [INFO] [stdout] | [INFO] [stdout] 48 | format!("Open Qrcode device error: {}", e).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/gyro/driver.rs:48:33 [INFO] [stdout] | [INFO] [stdout] 48 | ... format!("Gyro read frame error: {}", e).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] = note: `#[deny(self_type_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/stm32/driver.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | return Err(format!("Send command to STM32 failed: {}", msg).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/stm32/driver.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | return Err(format!("Read from STM32 failed: {}", msg).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/qr/driver/hid.rs:39:59 [INFO] [stdout] | [INFO] [stdout] 39 | device: DriverHIDDevice::Disconnected(format!("Env error: {}", e).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/qr/driver/hid.rs:48:25 [INFO] [stdout] | [INFO] [stdout] 48 | format!("Open Qrcode device error: {}", e).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/stm32/driver.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | return Err(format!("Send command to STM32 failed: {}", msg).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/devices/stm32/driver.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | return Err(format!("Read from STM32 failed: {}", msg).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this method call relies on the `impl Into for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `wall3` (bin "wall3") due to 5 previous errors; 65 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `wall3` (bin "wall3" test) due to 5 previous errors; 65 warnings emitted [INFO] [stderr] warning: unused dependency `rand` [INFO] [stderr] --> Cargo.toml:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | rand = "0.10.1" [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `cargo::unused_dependencies` is set to `warn` by default [INFO] [stderr] help: consider removing the dependency on `rand` [INFO] [stderr] warning: unused dependency `rqrr` [INFO] [stderr] --> Cargo.toml:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | rqrr = "0.10.1" [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider removing the dependency on `rqrr` [INFO] [stderr] warning: unused dependency `rscam` [INFO] [stderr] --> Cargo.toml:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | rscam = "0.5.5" [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider removing the dependency on `rscam` [INFO] [stderr] warning: `wall3` (manifest) generated 3 warnings [INFO] running `Command { std: "docker" "inspect" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104", kill_on_drop: false }` [INFO] [stdout] 4e229776234db5e9687d436ecd08bc4edc921ab522430f2240cbd7efb1b1b104