[INFO] cloning repository https://github.com/w060530/finally_dt_text
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/w060530/finally_dt_text" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fw060530%2Ffinally_dt_text", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fw060530%2Ffinally_dt_text'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0000c72b78bb0212103092646b482157c8a82ed9
[INFO] checking w060530/finally_dt_text against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fw060530%2Ffinally_dt_text" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/w060530/finally_dt_text
[INFO] finished tweaking git repo https://github.com/w060530/finally_dt_text
[INFO] tweaked toml for git repo https://github.com/w060530/finally_dt_text written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/w060530/finally_dt_text on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/w060530/finally_dt_text 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323
[INFO] running `Command { std: "docker" "start" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323", 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" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323", 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" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling defmt v1.1.1
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling defmt-macros v1.1.1
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]     Checking nb v1.1.0
[INFO] [stderr]    Compiling cortex-m v0.7.7
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling cortex-m-rt v0.7.6
[INFO] [stderr]    Compiling embassy-time-driver v0.2.2
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking embedded-hal v1.0.0
[INFO] [stderr]    Compiling heapless v0.9.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking nb v0.1.3
[INFO] [stderr]     Checking vcell v0.1.3
[INFO] [stderr]     Checking volatile-register v0.2.2
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking embedded-hal v0.2.7
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking bitfield v0.13.2
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling embedded-hal-async v1.0.0
[INFO] [stderr]     Checking futures-core v0.3.33
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]    Compiling embassy-sync v0.8.0
[INFO] [stderr]    Compiling stm32-metapac v21.0.0
[INFO] [stderr]    Compiling embassy-time-queue-utils v0.3.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling portable-atomic v1.14.0
[INFO] [stderr]     Checking futures-sink v0.3.33
[INFO] [stderr]     Checking embedded-io v0.6.1
[INFO] [stderr]    Compiling embassy-hal-internal v0.4.0
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking embedded-storage v0.3.1
[INFO] [stderr]    Compiling bare-metal v0.2.5
[INFO] [stderr]    Compiling embassy-hal-internal v0.5.0
[INFO] [stderr]     Checking embassy-executor-timer-queue v0.1.0
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling defmt-rtt v1.3.0
[INFO] [stderr]     Checking embedded-storage-async v0.4.1
[INFO] [stderr]    Compiling panic-probe v1.0.0
[INFO] [stderr]     Checking embassy-futures v0.1.2
[INFO] [stderr]    Compiling embassy-executor v0.10.0
[INFO] [stderr]     Checking futures-task v0.3.33
[INFO] [stderr]     Checking block-device-driver v0.2.0
[INFO] [stderr]     Checking embedded-hal-nb v1.0.0
[INFO] [stderr]     Checking stm32-fmc v0.4.0
[INFO] [stderr]     Checking embedded-can v0.4.1
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking cordyceps v0.3.5
[INFO] [stderr]     Checking sdio-host v0.9.0
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling trait-set v0.3.0
[INFO] [stderr]    Compiling defmt-parser v1.0.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling cortex-m-rt-macros v0.7.6
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling defmt v0.3.100
[INFO] [stderr]     Checking embedded-io v0.7.1
[INFO] [stderr]     Checking embassy-time v0.5.1
[INFO] [stderr]     Checking embassy-net-driver v0.2.0
[INFO] [stderr]     Checking embedded-io-async v0.7.0
[INFO] [stderr]     Checking embassy-usb-driver v0.2.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling embassy-executor-macros v0.8.0
[INFO] [stderr]    Compiling embassy-stm32 v0.6.0
[INFO] [stderr]     Checking embassy-embedded-hal v0.6.0
[INFO] [stderr]     Checking embassy-usb-synopsys-otg v0.3.3
[INFO] [stderr]     Checking lvrx v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `embassy_stm32::gpio::Level`
[INFO] [stdout]  --> src/component/step_motor/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use embassy_stm32::gpio::Level;
[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: `embassy_time::Timer`
[INFO] [stdout]  --> src/component/step_motor/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use embassy_time::Timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embassy_executor::Spawner`
[INFO] [stdout]  --> src/component/step_motor/general/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use embassy_executor::Spawner;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embassy_stm32::usart::Uart`
[INFO] [stdout]  --> src/component/step_motor/general/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use embassy_stm32::usart::Uart;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode::EncodeMotor`
[INFO] [stdout]   --> src/component/motor/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use encode::EncodeMotor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NullMotor` and `OpenLoopMotor`
[INFO] [stdout]   --> src/component/motor/mod.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use open_loop::{NullMotor, OpenLoopMotor};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SingleVelocityPid`
[INFO] [stdout]   --> src/component/motor/mod.rs:12:45
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use pid::{DoublePid, SinglePositionPid, SingleVelocityPid, TriplePid};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Paw3395Register` and `Paw3395`
[INFO] [stdout]  --> src/component/optical_sensor/mod.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use paw3395::{Paw3395, Paw3395Register};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serial_bus::MecanumChassisSerialBus`
[INFO] [stdout]  --> src/system/chassis/mecanum/connect/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use serial_bus::MecanumChassisSerialBus;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Timer`
[INFO] [stdout]   --> src/main.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use embassy_time::{Duration, Timer};
[INFO] [stdout]    |                    ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MoveInfo`
[INFO] [stdout]   --> src/main.rs:15:57
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::system::chassis::move_task::{MotionGeometry, MoveInfo};
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `#[panic_handler]` function required, but not found
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unwinding panics are not supported without std
[INFO] [stdout]   |
[INFO] [stdout]   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
[INFO] [stdout]   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embassy_stm32::gpio::Level`
[INFO] [stdout]  --> src/component/step_motor/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use embassy_stm32::gpio::Level;
[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: `embassy_time::Timer`
[INFO] [stdout]  --> src/component/step_motor/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use embassy_time::Timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embassy_executor::Spawner`
[INFO] [stdout]  --> src/component/step_motor/general/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use embassy_executor::Spawner;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embassy_stm32::usart::Uart`
[INFO] [stdout]  --> src/component/step_motor/general/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use embassy_stm32::usart::Uart;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode::EncodeMotor`
[INFO] [stdout]   --> src/component/motor/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use encode::EncodeMotor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NullMotor` and `OpenLoopMotor`
[INFO] [stdout]   --> src/component/motor/mod.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use open_loop::{NullMotor, OpenLoopMotor};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SingleVelocityPid`
[INFO] [stdout]   --> src/component/motor/mod.rs:12:45
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use pid::{DoublePid, SinglePositionPid, SingleVelocityPid, TriplePid};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Paw3395Register` and `Paw3395`
[INFO] [stdout]  --> src/component/optical_sensor/mod.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use paw3395::{Paw3395, Paw3395Register};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serial_bus::MecanumChassisSerialBus`
[INFO] [stdout]  --> src/system/chassis/mecanum/connect/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use serial_bus::MecanumChassisSerialBus;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Timer`
[INFO] [stdout]   --> src/main.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use embassy_time::{Duration, Timer};
[INFO] [stdout]    |                    ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MoveInfo`
[INFO] [stdout]   --> src/main.rs:15:57
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::system::chassis::move_task::{MotionGeometry, MoveInfo};
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut led = Output::new(peripherals.PC13, Level::Low, Speed::Low);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `led`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut led = Output::new(peripherals.PC13, Level::Low, Speed::Low);
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut led = Output::new(peripherals.PC13, Level::Low, Speed::Low);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `led`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut led = Output::new(peripherals.PC13, Level::Low, Speed::Low);
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lvrx` (bin "lvrx") due to 2 previous errors; 13 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: methods `set_enable`, `set_velocity`, `stop_now`, `set_sub_division`, and `calibrate` are never used
[INFO] [stdout]   --> src/component/step_motor/connect/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) trait StepCommandTrait {
[INFO] [stdout]    |                  ---------------- methods in this trait
[INFO] [stdout] 36 |     fn reset_zero_point(&self) -> Command;
[INFO] [stdout] 37 |     fn set_enable(&self, enabled: bool) -> Command;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 38 |     fn set_velocity(&self, velocity: u16, dir: bool, acc: u16, sync: bool) -> Command;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn set_position(&self, position: u32, dir: bool, acc: u16, velocity: u16, sync: bool) -> Command;
[INFO] [stdout] 40 |     fn stop_now(&self) -> Command;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 41 |     fn run_sync_task(addr: u8) -> Command;
[INFO] [stdout] 42 |     fn set_sub_division(&self, sub_division: u8) -> Command;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     fn calibrate(&self) -> Command;
[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 `address` is never used
[INFO] [stdout]   --> src/component/step_motor/connect/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) trait AddressedStepCommand: StepCommandTrait {
[INFO] [stdout]    |                  -------------------- method in this trait
[INFO] [stdout] 48 |     fn address(&self) -> u8;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ZdtXHandle` is never constructed
[INFO] [stdout]  --> src/component/step_motor/connect/x_ware.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ZdtXHandle {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `modify_motor_id` are never used
[INFO] [stdout]   --> src/component/step_motor/connect/x_ware.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl ZdtXHandle {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new(addr: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn modify_motor_id(&self, id: u8) -> Command {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Absolute` and `AbsoluteFromCurrent` are never constructed
[INFO] [stdout]   --> src/component/step_motor/connect/emm_ware.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum EmmPositionMode {
[INFO] [stdout]    |      --------------- variants in this enum
[INFO] [stdout] 10 |     Absolute = 0,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 11 |     Relative = 1,
[INFO] [stdout] 12 |     AbsoluteFromCurrent = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EmmPositionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/component/step_motor/connect/emm_ware.rs:20:8
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ZdtEmmHandle {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  20 |     fn reset_clog_protection(&self) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     fn restore_factory_settings(&self) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn set_enable_sync(&self, enabled: bool, sync: bool) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn set_velocity_sync(&self, velocity: u16, dir: bool, acc: u8, sync: bool) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn set_quick_position_params(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn quick_position(&self, position: i32) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn stop_now_sync(&self, sync: bool) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn set_sub_division_with_save(&self, sub_division: u8, save: bool) -> Command {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IOPort` is never used
[INFO] [stdout]  --> src/component/step_motor/general/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait IOPort {
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StepMotorIO` is never constructed
[INFO] [stdout]   --> src/component/step_motor/general/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct StepMotorIO<T: IOPort> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `step_once`, `steps`, `set_enabled`, and `set_direction` are never used
[INFO] [stdout]   --> src/component/step_motor/general/mod.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<T: IOPort> StepMotorIO<T> {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(mut enable: Option<T>, mut direction: T, mut step: T) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub async fn step_once(&mut self, delay: u32) {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub async fn steps(&mut self, steps: u32, delay: u32) {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn set_enabled(&mut self, enabled: bool){
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn set_direction(&mut self, dir : bool){
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotorBridge` is never constructed
[INFO] [stdout]  --> src/component/motor/bridge.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct MotorBridge<IO>
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_direction` are never used
[INFO] [stdout]   --> src/component/motor/bridge.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | / impl<IO> MotorBridge<IO>
[INFO] [stdout] 12 | | where
[INFO] [stdout] 13 | |     IO: MotorIo,
[INFO] [stdout]    | |________________- associated items in this implementation
[INFO] [stdout] 14 |   {
[INFO] [stdout] 15 |       pub fn new(forward_pin: IO, backward_pin: IO) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |       pub fn set_direction(&mut self, forward: bool) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotorParas` is never constructed
[INFO] [stdout]  --> src/component/motor/config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct MotorParas {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MotorDirection` is never used
[INFO] [stdout]   --> src/component/motor/config.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MotorDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PidPara` is never constructed
[INFO] [stdout]   --> src/component/motor/config.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PidPara {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EncodeMotor` is never constructed
[INFO] [stdout]  --> src/component/motor/encode.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct EncodeMotor<PWM, IO, E>
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/component/motor/encode.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | / impl<PWM, IO, E> EncodeMotor<PWM, IO, E>
[INFO] [stdout]  21 | | where
[INFO] [stdout]  22 | |     PWM: PwmOutput,
[INFO] [stdout]  23 | |     IO: MotorIo,
[INFO] [stdout]     | |________________- associated items in this implementation
[INFO] [stdout]  24 |   {
[INFO] [stdout]  25 |       pub fn new(
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |       pub fn update_single_position(&mut self, time_ms: u32, encoder_count: i16) -> f32 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |       pub fn update_double(&mut self, time_ms: u32, encoder_count: i16) -> f32 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |       pub fn update_triple(&mut self, time_ms: u32, encoder_count: u16, duty_cycle: f32) -> f32 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |       pub fn set_direction(&mut self, dir: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |       pub fn set_max_speed(&mut self, speed: f32) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |       pub fn set_speed(&mut self, speed: f32) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |       fn apply_direction(&mut self, duty: &mut f32) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenLoopMotor` is never constructed
[INFO] [stdout]  --> src/component/motor/open_loop.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct OpenLoopMotor<PWM, IO, E>
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_direction`, `set_max_speed`, and `set_speed` are never used
[INFO] [stdout]   --> src/component/motor/open_loop.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | / impl<PWM, IO, E> OpenLoopMotor<PWM, IO, E>
[INFO] [stdout] 15 | | where
[INFO] [stdout] 16 | |     PWM: PwmOutput,
[INFO] [stdout] 17 | |     IO: crate::component::motor::MotorIo,
[INFO] [stdout]    | |_________________________________________- associated items in this implementation
[INFO] [stdout] 18 |   {
[INFO] [stdout] 19 |       pub fn new(pwm_channel: PWM, bridge: MotorBridge<IO>, encoder: E) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |       pub fn set_direction(&mut self, dir: bool) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |       pub fn set_max_speed(&mut self, speed: f32) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn set_speed(&mut self, speed: f32) {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NullMotor` is never used
[INFO] [stdout]   --> src/component/motor/open_loop.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub type NullMotor<PWM, IO, E> = OpenLoopMotor<PWM, IO, E>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_velocity_output` is never used
[INFO] [stdout]  --> src/component/motor/pid/common.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn clamp_velocity_output(output: f32, motor_paras: MotorParas) -> f32 {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encoder_count_to_rpm` is never used
[INFO] [stdout]  --> src/component/motor/pid/common.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) fn encoder_count_to_rpm(encoder_count: i16, time_ms: u32, motor_paras: MotorParas) -> f32 {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derivative` is never used
[INFO] [stdout]   --> src/component/motor/pid/common.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) fn derivative(error: f32, last_error: f32, time_ms: u32) -> f32 {
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublePid` is never constructed
[INFO] [stdout]  --> src/component/motor/pid/double.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DoublePid {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `reset` are never used
[INFO] [stdout]   --> src/component/motor/pid/double.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl DoublePid {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 20 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn update(&mut self, encoder_count: i16, time_ms: u32) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SinglePositionPid` is never constructed
[INFO] [stdout]  --> src/component/motor/pid/single_position.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SinglePositionPid {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `reset` are never used
[INFO] [stdout]   --> src/component/motor/pid/single_position.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SinglePositionPid {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 15 |     pub const fn new(motor_paras: MotorParas, c_para: PidPara, die_zone: f32) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn update(&mut self, encoder_count: i16, time_ms: u32) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleVelocityPid` is never constructed
[INFO] [stdout]  --> src/component/motor/pid/single_velocity.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SingleVelocityPid {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `reset` are never used
[INFO] [stdout]   --> src/component/motor/pid/single_velocity.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl SingleVelocityPid {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub const fn new(motor_paras: MotorParas, v_para: PidPara, die_zone: f32) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn update(&mut self, encoder_count: i16, time_ms: u32) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TriplePid` is never constructed
[INFO] [stdout]  --> src/component/motor/pid/triple.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TriplePid {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `reset` are never used
[INFO] [stdout]   --> src/component/motor/pid/triple.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TriplePid {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 25 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn update(&mut self, encoder_count: u16, duty_cycle: f32, time_ms: u32) -> f32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PwmOutput` is never used
[INFO] [stdout]  --> src/component/motor/traits.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait PwmOutput {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MotorIo` is never used
[INFO] [stdout]  --> src/component/motor/traits.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait MotorIo {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionSample` is never constructed
[INFO] [stdout]  --> src/component/optical_sensor/data.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct MotionSample {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionBurst` is never constructed
[INFO] [stdout]   --> src/component/optical_sensor/data.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MotionBurst {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `LEN`, `ADDRESS`, and `from_bytes` are never used
[INFO] [stdout]   --> src/component/optical_sensor/data.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl MotionBurst {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 21 |     pub const LEN: usize = 16;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 22 |     pub const ADDRESS: u8 = 0x16;
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 23 |
[INFO] [stdout] 24 |     pub fn from_bytes(bytes: [u8; Self::LEN]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Paw3395Register` is never used
[INFO] [stdout]   --> src/component/optical_sensor/paw3395.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Paw3395Register {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Paw3395` is never constructed
[INFO] [stdout]   --> src/component/optical_sensor/paw3395.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Paw3395<SPI, CS, DELAY> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `release` are never used
[INFO] [stdout]   --> src/component/optical_sensor/paw3395.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl<SPI, CS, DELAY> Paw3395<SPI, CS, DELAY> {
[INFO] [stdout]    | -------------------------------------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new(spi: SPI, cs: CS, delay: DELAY) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn release(self) -> (SPI, CS, DELAY) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/component/optical_sensor/paw3395.rs:44:11
[INFO] [stdout]     |
[INFO] [stdout]  38 | / impl<SPI, CS, DELAY, SpiError, CsError> Paw3395<SPI, CS, DELAY>
[INFO] [stdout]  39 | | where
[INFO] [stdout]  40 | |     SPI: SpiDeviceBus<Error = SpiError>,
[INFO] [stdout]  41 | |     CS: ChipSelectPin<Error = CsError>,
[INFO] [stdout]  42 | |     DELAY: DelayUs,
[INFO] [stdout]     | |___________________- associated items in this implementation
[INFO] [stdout]  43 |   {
[INFO] [stdout]  44 |       const POWER_UP_DELAY_US: u32 = 60_000;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  45 |       const POST_WRITE_DELAY_US: u32 = 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  46 |       const POST_READ_DELAY_US: u32 = 20;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  47 |       const MOTION_READ_DELAY_US: u32 = 10;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  48 |       const BURST_READ_DELAY_US: u32 = 35;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  49 |       const INIT_MID_DELAY_US: u32 = 200;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  50 |       const INIT_STATUS_POLL_DELAY_US: u32 = 1_000;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  51 |       const INIT_STATUS_POLL_MAX: usize = 60;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  52 |
[INFO] [stdout]  53 |       fn with_chip_selected<T>(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |       fn read_register_raw(&mut self, address: u8) -> Result<u8, OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |       fn write_register_raw(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |       fn write_sequence(&mut self, sequence: &[(u8, u8)]) -> Result<(), OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |       fn trigger_motion_read(&mut self) -> Result<(), OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |       pub fn init(&mut self) -> Result<(), OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |       pub fn product_id(&mut self) -> Result<u8, OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |       pub fn is_expected_product(&mut self) -> Result<bool, OpticalSensorError<SpiError, CsError>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |       pub fn read_motion_non_burst(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |       pub fn read_motion_if_active<P: MotionInputPin>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT_ID_EXPECTED` is never used
[INFO] [stdout]  --> src/component/optical_sensor/paw3395_sequence.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const PRODUCT_ID_EXPECTED: u8 = 0x80;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INIT_STATUS_REGISTER` is never used
[INFO] [stdout]  --> src/component/optical_sensor/paw3395_sequence.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const INIT_STATUS_REGISTER: u8 = 0x6C;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INIT_STATUS_READY` is never used
[INFO] [stdout]  --> src/component/optical_sensor/paw3395_sequence.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const INIT_STATUS_READY: u8 = 0x80;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INIT_SEQUENCE` is never used
[INFO] [stdout]  --> src/component/optical_sensor/paw3395_sequence.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const INIT_SEQUENCE: &[(u8, u8)] = &[
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FINAL_SEQUENCE` is never used
[INFO] [stdout]    --> src/component/optical_sensor/paw3395_sequence.rs:144:11
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub const FINAL_SEQUENCE: &[(u8, u8)] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OpticalSensorError` is never used
[INFO] [stdout]  --> src/component/optical_sensor/traits.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum OpticalSensorError<SpiError, CsError> {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SpiDeviceBus` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait SpiDeviceBus {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ChipSelectPin` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait ChipSelectPin {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DelayUs` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait DelayUs {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MotionInputPin` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MotionInputPin {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OpticalRegisterAccess` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait OpticalRegisterAccess {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MotionSensor` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub trait MotionSensor {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MotionSensorCallback` is never used
[INFO] [stdout]   --> src/component/optical_sensor/traits.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub trait MotionSensorCallback {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/system/chassis/move_task.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum MoveDirection {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout]  5 |     Forward,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]  6 |     Backward,
[INFO] [stdout]  7 |     Left,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]  8 |     Right,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]  9 |     RotateLeft,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 10 |     RotateRight,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 11 |     LeftForward,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 12 |     RightForward,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     LeftBackward,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     RightBackward,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveDirection` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `acceleration_millis`, `cruise_millis`, and `deceleration_millis` are never read
[INFO] [stdout]   --> src/system/chassis/move_task.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct MoveDuration {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 90 |     pub acceleration_millis: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 91 |     pub cruise_millis: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub deceleration_millis: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveDuration` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveTask` is never constructed
[INFO] [stdout]    --> src/system/chassis/move_task.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct MoveTask {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidResponse` is never constructed
[INFO] [stdout]   --> src/system/chassis/mecanum/connect/base_bus.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum BusError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 14 |     Io,
[INFO] [stdout] 15 |     InvalidResponse,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BusError` 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 `bus_mut`, `set_rotate_fix_factor`, `set_sub_division`, `enable_all`, and `get_move_info` are never used
[INFO] [stdout]    --> src/system/chassis/mecanum/connect/base_bus.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | / impl<BUS, MOTOR> BaseBus<BUS, MOTOR>
[INFO] [stdout]  60 | | where
[INFO] [stdout]  61 | |     BUS: BusIO,
[INFO] [stdout]  62 | |     MOTOR: AddressedStepCommand + Copy,
[INFO] [stdout]     | |_______________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |       pub fn bus_mut(&mut self) -> &mut BUS {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |       pub fn set_rotate_fix_factor(&mut self, factor: f32) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |       pub fn set_sub_division(&mut self, sub_division: u8) -> Result<(), BusError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |       pub fn enable_all(&mut self) -> Result<(), BusError> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |       pub fn get_move_info(&self, distance_mill: f32, factor: f32) -> MoveInfo {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_sub_division`, `run_task`, `run_task_no_check`, and `estimate_duration` are never used
[INFO] [stdout]   --> src/system/chassis/mecanum/connect/rs485_bus.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | / impl<BUS, FLOW, MOTOR> MecanumChassisRs485Bus<BUS, FLOW, MOTOR>
[INFO] [stdout] 18 | | where
[INFO] [stdout] 19 | |     BUS: BusIO,
[INFO] [stdout] 20 | |     FLOW: Rs485FlowControl,
[INFO] [stdout] 21 | |     MOTOR: AddressedStepCommand + Copy,
[INFO] [stdout]    | |_______________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn set_sub_division(&mut self, sub_division: u8) -> Result<(), BusError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |       pub fn run_task(&mut self, direction: MoveDirection, distance_mill: f32) -> Result<MoveInfo, BusError> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |       pub fn run_task_no_check(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |       pub fn estimate_duration(&self, info: MoveInfo) -> MoveDuration {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MecanumChassisSerialBus` is never constructed
[INFO] [stdout]  --> src/system/chassis/mecanum/connect/serial_bus.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MecanumChassisSerialBus<BUS, MOTOR>
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_sub_division`, `run_task`, `run_task_wait_time`, and `estimate_duration` are never used
[INFO] [stdout]   --> src/system/chassis/mecanum/connect/serial_bus.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | / impl<BUS, MOTOR> MecanumChassisSerialBus<BUS, MOTOR>
[INFO] [stdout] 14 | | where
[INFO] [stdout] 15 | |     BUS: BusIO,
[INFO] [stdout] 16 | |     MOTOR: AddressedStepCommand + Copy,
[INFO] [stdout]    | |_______________________________________- associated items in this implementation
[INFO] [stdout] 17 |   {
[INFO] [stdout] 18 |       pub fn new(bus: BUS, motors: [MOTOR; 4], standard_directions: [bool; 4], geometry: MotionGeometry) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |       pub fn set_sub_division(&mut self, sub_division: u8) -> Result<(), BusError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |       pub fn run_task(&mut self, direction: MoveDirection, distance_mill: f32) -> Result<MoveInfo, BusError> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |       pub fn run_task_wait_time(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |       pub fn estimate_duration(&self, info: MoveInfo) -> MoveDuration {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MecanumChassisStepBus` is never constructed
[INFO] [stdout]  --> src/system/chassis/mecanum/step/mod.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MecanumChassisStepBus<T: IOPort> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run_task` are never used
[INFO] [stdout]   --> src/system/chassis/mecanum/step/mod.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<T: IOPort> MecanumChassisStepBus<T> {
[INFO] [stdout]    | ---------------------------------------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn run_task(&mut self, task: MoveTask) {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/system/chassis/mecanum/step/step.rs:9:8
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl<T: IOPort> MecanumChassisStepBus<T> {
[INFO] [stdout]     | ---------------------------------------- methods in this implementation
[INFO] [stdout]   9 |     fn move_forward(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  16 |     fn move_backward(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     fn turn_left(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     fn turn_right(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     fn move_left(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     fn move_right(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn reset(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     fn set_steps(&mut self, steps: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn is_move_complete(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     async fn step_once(&mut self, delay: f32) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     async fn nano_update(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     async fn micro_update(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     async fn stable_update(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     async fn update(&mut self) {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(super) fn move_action(&mut self, task: MoveTask) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub(super) async  fn run(&mut self) {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323", kill_on_drop: false }`
[INFO] [stdout] cec615ccd1e9d8b3a74aacfa2038898e4010c4635943487ddcb24a6e5cbf2323
