[INFO] cloning repository https://github.com/coachbots/cocos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coachbots/cocos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoachbots%2Fcocos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoachbots%2Fcocos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b813908229aed30e588832f959ff4d92e8374fad
[INFO] testing coachbots/cocos against 1.76.0 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoachbots%2Fcocos" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/coachbots/cocos on toolchain 1.76.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/coachbots/cocos
[INFO] finished tweaking git repo https://github.com/coachbots/cocos
[INFO] tweaked toml for git repo https://github.com/coachbots/cocos written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/coachbots/cocos 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" "+1.76.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rppal v0.13.1
[INFO] [stderr]   Downloaded uom v0.33.0
[INFO] [stderr]   Downloaded zeromq-src v0.1.10+4.3.2
[INFO] [stderr]   Downloaded static_assertions v0.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4043ab7f0fadac3ca48b071caa4d7fad71bf9ef2ea040a906e0c2e009acc753a
[INFO] running `Command { std: "docker" "start" "-a" "4043ab7f0fadac3ca48b071caa4d7fad71bf9ef2ea040a906e0c2e009acc753a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4043ab7f0fadac3ca48b071caa4d7fad71bf9ef2ea040a906e0c2e009acc753a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4043ab7f0fadac3ca48b071caa4d7fad71bf9ef2ea040a906e0c2e009acc753a", kill_on_drop: false }`
[INFO] [stdout] 4043ab7f0fadac3ca48b071caa4d7fad71bf9ef2ea040a906e0c2e009acc753a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 197150706ba9ec84e07dc8289f41c07fcd5b41fedffbe0f9bab13e100e9179cc
[INFO] running `Command { std: "docker" "start" "-a" "197150706ba9ec84e07dc8289f41c07fcd5b41fedffbe0f9bab13e100e9179cc", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling unicode-ident v1.0.4
[INFO] [stderr]    Compiling syn v1.0.100
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling futures-io v0.3.24
[INFO] [stderr]    Compiling once_cell v1.15.0
[INFO] [stderr]    Compiling cache-padded v1.2.0
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]    Compiling futures-task v0.3.24
[INFO] [stderr]    Compiling concurrent-queue v1.2.4
[INFO] [stderr]    Compiling error-chain v0.10.0
[INFO] [stderr]    Compiling waker-fn v1.1.0
[INFO] [stderr]    Compiling futures-channel v0.3.24
[INFO] [stderr]    Compiling toml v0.2.1
[INFO] [stderr]    Compiling fastrand v1.8.0
[INFO] [stderr]    Compiling parking v2.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.145
[INFO] [stderr]    Compiling futures-util v0.3.24
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling futures-sink v0.3.24
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling value-bag v1.0.0-alpha.9
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling cmake v0.1.49
[INFO] [stderr]    Compiling polling v2.3.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling metadeps v1.1.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling async-io v1.9.0
[INFO] [stderr]    Compiling futures-lite v1.12.0
[INFO] [stderr]    Compiling zeromq-src v0.1.10+4.3.2
[INFO] [stderr]    Compiling async-task v4.3.0
[INFO] [stderr]    Compiling serde v1.0.145
[INFO] [stderr]    Compiling async-channel v1.7.1
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling crossbeam-utils v0.8.11
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling atomic-waker v1.0.0
[INFO] [stderr]    Compiling aho-corasick v0.7.19
[INFO] [stderr]    Compiling async-lock v2.5.0
[INFO] [stderr]    Compiling serde_json v1.0.87
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling socket2 v0.4.7
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling regex-syntax v0.6.27
[INFO] [stderr]    Compiling os_str_bytes v6.4.0
[INFO] [stderr]    Compiling zmq v0.9.2
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling zmq-sys v0.11.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling clap_lex v0.3.0
[INFO] [stderr]    Compiling ryu v1.0.11
[INFO] [stderr]    Compiling discard v1.0.4
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling itoa v1.0.4
[INFO] [stderr]    Compiling blocking v1.2.0
[INFO] [stderr]    Compiling async-executor v1.4.1
[INFO] [stderr]    Compiling rppal v0.13.1
[INFO] [stderr]    Compiling subprocess v0.2.9
[INFO] [stderr]    Compiling static_assertions v0.1.1
[INFO] [stderr]    Compiling uom v0.33.0
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]    Compiling ctor v0.1.23
[INFO] [stderr]    Compiling futures-macro v0.3.24
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]    Compiling clap_derive v4.0.21
[INFO] [stderr]    Compiling serde_repr v0.1.9
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling env_logger v0.9.1
[INFO] [stderr]    Compiling pin-project v1.0.12
[INFO] [stderr]    Compiling async-global-executor v2.3.0
[INFO] [stderr]    Compiling async-std v1.12.0
[INFO] [stderr]    Compiling clap v4.0.26
[INFO] [stderr]    Compiling futures-executor v0.3.24
[INFO] [stderr]    Compiling futures v0.3.24
[INFO] [stderr]    Compiling futures-signals v0.3.31
[INFO] [stderr]    Compiling cocos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `borrow::Borrow`
[INFO] [stdout]   --> src/controllers/api/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     borrow::Borrow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]  --> src/controllers/master.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 |     thread::{self, JoinHandle, sleep},
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `controllers::api`
[INFO] [stdout]   --> src/controllers/master.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     }, controllers::api,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/io/rpi/pwm.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rppal::gpio::{self, Gpio};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `atomic::AtomicBool`, `borrow::Borrow`
[INFO] [stdout]  --> src/io/sim_print/pwm.rs:1:109
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{self, JoinHandle}, collections::HashMap, borrow::Borrow, sync::{Arc, atomic::AtomicBool, Mutex}};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/controllers/api/messager.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |             Err(error) => {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logging_task`
[INFO] [stdout]    --> src/controllers/master.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let logging_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logging_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `positioning_task`
[INFO] [stdout]    --> src/controllers/master.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let positioning_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positioning_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `led_task`
[INFO] [stdout]    --> src/controllers/master.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let led_task = spawn_task(move || {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pwm_dirver`
[INFO] [stdout]   --> src/controllers/motor.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |                    pwm_dirver: &mut impl DrivesPwm) -> Result<(), MotorControllerError> {
[INFO] [stdout]    |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pwm_dirver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:100:28
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_left(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:132:20
[INFO] [stdout]     |
[INFO] [stdout] 132 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_right(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.r,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.g,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.b,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uart_driver`
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:50:65
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn read_current_position<UartDriver: DrivesUart>(&self, uart_driver:
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uart_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Err(err) => {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 if let Err(err) = pin
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Even` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Odd` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Mark` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Space` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ unreachable pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Even`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Even`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Odd`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Mark`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Space`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/rpi/uart.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/sim_print/uart.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TimeoutError` is never constructed
[INFO] [stdout]   --> src/controllers/api/errors.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum ApiError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     TimeoutError,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor` is never read
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NuciferaDriver {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 28 |     descriptor: NuciferaDescriptor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NuciferaDriver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rpi_driver` is never read
[INFO] [stdout]   --> src/io/rpi/uart.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RpiUartDriver {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     rpi_driver: Uart,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/api/mod.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         let _ = borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:188:17
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let _ = motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         self.api_controller.kill();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let _ = self.api_controller.kill();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let _ = self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Even` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Odd` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case (notice the capitalization): `odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Mark` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Space` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         writeln!(self.file, "{:},1,S,{:},1 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         writeln!(self.file, "{:},1,S,{:},0 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         writeln!(self.file, "{:},1,C,{:},O,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         writeln!(self.file, "{:},1,C,{:},I,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},1 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 49 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},0 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 52 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 17.51s
[INFO] running `Command { std: "docker" "inspect" "197150706ba9ec84e07dc8289f41c07fcd5b41fedffbe0f9bab13e100e9179cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "197150706ba9ec84e07dc8289f41c07fcd5b41fedffbe0f9bab13e100e9179cc", kill_on_drop: false }`
[INFO] [stdout] 197150706ba9ec84e07dc8289f41c07fcd5b41fedffbe0f9bab13e100e9179cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e7001ecf209dd9330d94f3b712ca405d475f1d8936dae9dfc73cdd3f9b3d097
[INFO] running `Command { std: "docker" "start" "-a" "6e7001ecf209dd9330d94f3b712ca405d475f1d8936dae9dfc73cdd3f9b3d097", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `borrow::Borrow`
[INFO] [stdout]   --> src/controllers/api/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     borrow::Borrow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]  --> src/controllers/master.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 |     thread::{self, JoinHandle, sleep},
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `controllers::api`
[INFO] [stdout]   --> src/controllers/master.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     }, controllers::api,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/io/rpi/pwm.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rppal::gpio::{self, Gpio};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `atomic::AtomicBool`, `borrow::Borrow`
[INFO] [stdout]  --> src/io/sim_print/pwm.rs:1:109
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{self, JoinHandle}, collections::HashMap, borrow::Borrow, sync::{Arc, atomic::AtomicBool, Mutex}};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/controllers/api/messager.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |             Err(error) => {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logging_task`
[INFO] [stdout]    --> src/controllers/master.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let logging_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logging_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `positioning_task`
[INFO] [stdout]    --> src/controllers/master.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let positioning_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positioning_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `led_task`
[INFO] [stdout]    --> src/controllers/master.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let led_task = spawn_task(move || {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pwm_dirver`
[INFO] [stdout]   --> src/controllers/motor.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |                    pwm_dirver: &mut impl DrivesPwm) -> Result<(), MotorControllerError> {
[INFO] [stdout]    |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pwm_dirver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:100:28
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_left(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:132:20
[INFO] [stdout]     |
[INFO] [stdout] 132 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_right(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.r,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.g,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.b,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uart_driver`
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:50:65
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn read_current_position<UartDriver: DrivesUart>(&self, uart_driver:
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uart_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Err(err) => {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 if let Err(err) = pin
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Even` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Odd` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Mark` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Space` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ unreachable pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Even`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Even`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Odd`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Mark`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Space`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/rpi/uart.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/sim_print/uart.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TimeoutError` is never constructed
[INFO] [stdout]   --> src/controllers/api/errors.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum ApiError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     TimeoutError,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor` is never read
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NuciferaDriver {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 28 |     descriptor: NuciferaDescriptor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NuciferaDriver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rpi_driver` is never read
[INFO] [stdout]   --> src/io/rpi/uart.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RpiUartDriver {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     rpi_driver: Uart,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/api/mod.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         let _ = borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:188:17
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let _ = motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         self.api_controller.kill();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let _ = self.api_controller.kill();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let _ = self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Even` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Odd` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case (notice the capitalization): `odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Mark` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Space` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         writeln!(self.file, "{:},1,S,{:},1 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         writeln!(self.file, "{:},1,S,{:},0 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         writeln!(self.file, "{:},1,C,{:},O,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cocos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         writeln!(self.file, "{:},1,C,{:},I,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},1 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 49 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},0 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 52 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::Borrow`
[INFO] [stdout]   --> src/controllers/api/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     borrow::Borrow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]  --> src/controllers/master.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 |     thread::{self, JoinHandle, sleep},
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `controllers::api`
[INFO] [stdout]   --> src/controllers/master.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     }, controllers::api,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/io/rpi/pwm.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rppal::gpio::{self, Gpio};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `atomic::AtomicBool`, `borrow::Borrow`
[INFO] [stdout]  --> src/io/sim_print/pwm.rs:1:109
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{self, JoinHandle}, collections::HashMap, borrow::Borrow, sync::{Arc, atomic::AtomicBool, Mutex}};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/controllers/api/messager.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |             Err(error) => {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logging_task`
[INFO] [stdout]    --> src/controllers/master.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let logging_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logging_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `positioning_task`
[INFO] [stdout]    --> src/controllers/master.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let positioning_task = spawn_task(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positioning_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `led_task`
[INFO] [stdout]    --> src/controllers/master.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let led_task = spawn_task(move || {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pwm_dirver`
[INFO] [stdout]   --> src/controllers/motor.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |                    pwm_dirver: &mut impl DrivesPwm) -> Result<(), MotorControllerError> {
[INFO] [stdout]    |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pwm_dirver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/controllers/motor.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 if let Err(err) = self
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:100:28
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 if let Err(err) = self
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:129:20
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_left(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/controllers/motor.rs:132:20
[INFO] [stdout]     |
[INFO] [stdout] 132 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_right(), pwm_driver) {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.r,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.g,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/drivers/led_driver.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.b,
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uart_driver`
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:50:65
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn read_current_position<UartDriver: DrivesUart>(&self, uart_driver:
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uart_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Err(err) => {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/io/rpi/pwm.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 if let Err(err) = pin
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Even` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Odd` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Mark` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Space` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ unreachable pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ---- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Even`
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Even`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Odd`
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_Odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Mark`
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Space`
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_Space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/rpi/uart.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `into`
[INFO] [stdout]   --> src/io/sim_print/uart.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TimeoutError` is never constructed
[INFO] [stdout]   --> src/controllers/api/errors.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum ApiError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     TimeoutError,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `descriptor` is never read
[INFO] [stdout]   --> src/drivers/nucifera_driver.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NuciferaDriver {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 28 |     descriptor: NuciferaDescriptor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NuciferaDriver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rpi_driver` is never read
[INFO] [stdout]   --> src/io/rpi/uart.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RpiUartDriver {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     rpi_driver: Uart,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/api/mod.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |                         let _ = borrowed.kill(); // TODO: Handle error
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |             let _ = led_controller.set_color(*led, &mut *pwm);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:188:17
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let _ = motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         self.api_controller.kill();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let _ = self.api_controller.kill();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/controllers/master.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let _ = self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Even` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             Even => Parity::Even,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `even`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Odd` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |             Odd => Parity::Odd,
[INFO] [stdout]    |             ^^^ help: convert the identifier to snake case (notice the capitalization): `odd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Mark` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Mark => Parity::Mark,
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `mark`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Space` should have a snake case name
[INFO] [stdout]   --> src/io/rpi/uart.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             Space => Parity::Space
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         writeln!(self.file, "{:},1,S,{:},1 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         writeln!(self.file, "{:},1,S,{:},0 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         writeln!(self.file, "{:},1,C,{:},O,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/gpio.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         writeln!(self.file, "{:},1,C,{:},I,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},1 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 49 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/io/sim_print/pwm.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},0 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stdout] 52 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stdout]    | |__________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.84s
[INFO] running `Command { std: "docker" "inspect" "6e7001ecf209dd9330d94f3b712ca405d475f1d8936dae9dfc73cdd3f9b3d097", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e7001ecf209dd9330d94f3b712ca405d475f1d8936dae9dfc73cdd3f9b3d097", kill_on_drop: false }`
[INFO] [stdout] 6e7001ecf209dd9330d94f3b712ca405d475f1d8936dae9dfc73cdd3f9b3d097
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 864e0324caf7b5f5c3e9503263ee833485a3b46351763699c508b595c568b570
[INFO] running `Command { std: "docker" "start" "-a" "864e0324caf7b5f5c3e9503263ee833485a3b46351763699c508b595c568b570", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `borrow::Borrow`
[INFO] [stderr]   --> src/controllers/api/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     borrow::Borrow,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sleep`
[INFO] [stderr]  --> src/controllers/master.rs:4:32
[INFO] [stderr]   |
[INFO] [stderr] 4 |     thread::{self, JoinHandle, sleep},
[INFO] [stderr]   |                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `controllers::api`
[INFO] [stderr]   --> src/controllers/master.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 |     }, controllers::api,
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]  --> src/io/rpi/pwm.rs:2:19
[INFO] [stderr]   |
[INFO] [stderr] 2 | use rppal::gpio::{self, Gpio};
[INFO] [stderr]   |                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `atomic::AtomicBool`, `borrow::Borrow`
[INFO] [stderr]  --> src/io/sim_print/pwm.rs:1:109
[INFO] [stderr]   |
[INFO] [stderr] 1 | ...::{self, JoinHandle}, collections::HashMap, borrow::Borrow, sync::{Arc, atomic::AtomicBool, Mutex}};
[INFO] [stderr]   |                                                ^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error`
[INFO] [stderr]    --> src/controllers/api/messager.rs:321:17
[INFO] [stderr]     |
[INFO] [stderr] 321 |             Err(error) => {
[INFO] [stderr]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `logging_task`
[INFO] [stderr]    --> src/controllers/master.rs:109:13
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let logging_task = spawn_task(
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logging_task`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `positioning_task`
[INFO] [stderr]    --> src/controllers/master.rs:127:13
[INFO] [stderr]     |
[INFO] [stderr] 127 |         let positioning_task = spawn_task(
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positioning_task`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `led_task`
[INFO] [stderr]    --> src/controllers/master.rs:142:13
[INFO] [stderr]     |
[INFO] [stderr] 142 |         let led_task = spawn_task(move || {
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_led_task`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pwm_dirver`
[INFO] [stderr]   --> src/controllers/motor.rs:42:20
[INFO] [stderr]    |
[INFO] [stderr] 42 |                    pwm_dirver: &mut impl DrivesPwm) -> Result<(), MotorControllerError> {
[INFO] [stderr]    |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pwm_dirver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/controllers/motor.rs:72:28
[INFO] [stderr]    |
[INFO] [stderr] 72 |                 if let Err(err) = self
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/controllers/motor.rs:78:28
[INFO] [stderr]    |
[INFO] [stderr] 78 |                 if let Err(err) = self
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/controllers/motor.rs:86:28
[INFO] [stderr]    |
[INFO] [stderr] 86 |                 if let Err(err) = self
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/controllers/motor.rs:92:28
[INFO] [stderr]    |
[INFO] [stderr] 92 |                 if let Err(err) = self
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:100:28
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 if let Err(err) = self
[INFO] [stderr]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:106:28
[INFO] [stderr]     |
[INFO] [stderr] 106 |                 if let Err(err) = self
[INFO] [stderr]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:114:28
[INFO] [stderr]     |
[INFO] [stderr] 114 |                 if let Err(err) = self
[INFO] [stderr]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:120:28
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 if let Err(err) = self
[INFO] [stderr]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:129:20
[INFO] [stderr]     |
[INFO] [stderr] 129 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_left(), pwm_driver) {
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> src/controllers/motor.rs:132:20
[INFO] [stderr]     |
[INFO] [stderr] 132 |         if let Err(err) = self.left_motor_driver.set_speed(vel.pow_right(), pwm_driver) {
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/drivers/led_driver.rs:42:20
[INFO] [stderr]    |
[INFO] [stderr] 42 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.r,
[INFO] [stderr]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/drivers/led_driver.rs:46:20
[INFO] [stderr]    |
[INFO] [stderr] 46 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.g,
[INFO] [stderr]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/drivers/led_driver.rs:50:20
[INFO] [stderr]    |
[INFO] [stderr] 50 |         if let Err(err) = pwm_driver.set_freq_dc(self.descriptor.frequency, color.b,
[INFO] [stderr]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uart_driver`
[INFO] [stderr]   --> src/drivers/nucifera_driver.rs:50:65
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn read_current_position<UartDriver: DrivesUart>(&self, uart_driver:
[INFO] [stderr]    |                                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uart_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/io/rpi/pwm.rs:25:17
[INFO] [stderr]    |
[INFO] [stderr] 25 |             Err(err) => {
[INFO] [stderr]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/io/rpi/pwm.rs:30:28
[INFO] [stderr]    |
[INFO] [stderr] 30 |                 if let Err(err) = pin
[INFO] [stderr]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning[E0170]: pattern binding `Even` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stderr]   --> src/io/rpi/uart.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Even`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning[E0170]: pattern binding `Odd` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stderr]   --> src/io/rpi/uart.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |             Odd => Parity::Odd,
[INFO] [stderr]    |             ^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Odd`
[INFO] [stderr] 
[INFO] [stderr] warning[E0170]: pattern binding `Mark` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stderr]   --> src/io/rpi/uart.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |             Mark => Parity::Mark,
[INFO] [stderr]    |             ^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Mark`
[INFO] [stderr] 
[INFO] [stderr] warning[E0170]: pattern binding `Space` is named the same as one of the variants of the type `io::interface::uart::UartParity`
[INFO] [stderr]   --> src/io/rpi/uart.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |             Space => Parity::Space
[INFO] [stderr]    |             ^^^^^ help: to match on the variant, qualify the path: `io::interface::uart::UartParity::Space`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/io/rpi/uart.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ---- matches any value
[INFO] [stderr] 11 |             Odd => Parity::Odd,
[INFO] [stderr]    |             ^^^ unreachable pattern
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/io/rpi/uart.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ---- matches any value
[INFO] [stderr] 11 |             Odd => Parity::Odd,
[INFO] [stderr] 12 |             Mark => Parity::Mark,
[INFO] [stderr]    |             ^^^^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/io/rpi/uart.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ---- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 13 |             Space => Parity::Space
[INFO] [stderr]    |             ^^^^^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Even`
[INFO] [stderr]   --> src/io/rpi/uart.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Even`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Odd`
[INFO] [stderr]   --> src/io/rpi/uart.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |             Odd => Parity::Odd,
[INFO] [stderr]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_Odd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Mark`
[INFO] [stderr]   --> src/io/rpi/uart.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |             Mark => Parity::Mark,
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_Mark`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Space`
[INFO] [stderr]   --> src/io/rpi/uart.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |             Space => Parity::Space
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_Space`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `into`
[INFO] [stderr]   --> src/io/rpi/uart.rs:33:30
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `into`
[INFO] [stderr]   --> src/io/sim_print/uart.rs:13:30
[INFO] [stderr]    |
[INFO] [stderr] 13 |     fn read_bytes(&mut self, into: &mut [u8]) -> Result<Box<[u8]>, UartError> {
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_into`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TimeoutError` is never constructed
[INFO] [stderr]   --> src/controllers/api/errors.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 7  | pub enum ApiError {
[INFO] [stderr]    |          -------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 13 |     TimeoutError,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `descriptor` is never read
[INFO] [stderr]   --> src/drivers/nucifera_driver.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct NuciferaDriver {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 28 |     descriptor: NuciferaDescriptor,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NuciferaDriver` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `rpi_driver` is never read
[INFO] [stderr]   --> src/io/rpi/uart.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct RpiUartDriver {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] 19 |     rpi_driver: Uart,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/controllers/api/mod.rs:121:25
[INFO] [stderr]     |
[INFO] [stderr] 121 |                         borrowed.kill(); // TODO: Handle error
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 121 |                         let _ = borrowed.kill(); // TODO: Handle error
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/controllers/master.rs:145:13
[INFO] [stderr]     |
[INFO] [stderr] 145 |             led_controller.set_color(*led, &mut *pwm);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 145 |             let _ = led_controller.set_color(*led, &mut *pwm);
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/controllers/master.rs:188:17
[INFO] [stderr]     |
[INFO] [stderr] 188 |                 motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 188 |                 let _ = motor_controller.set_vel(*mot_pow, &mut *gpio, &mut *pwm);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/controllers/master.rs:208:9
[INFO] [stderr]     |
[INFO] [stderr] 208 |         self.api_controller.kill();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 208 |         let _ = self.api_controller.kill();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/controllers/master.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 209 |         self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 209 |         let _ = self.api_controller.set_script(script.as_bytes().to_vec());
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Even` should have a snake case name
[INFO] [stderr]   --> src/io/rpi/uart.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             Even => Parity::Even,
[INFO] [stderr]    |             ^^^^ help: convert the identifier to snake case: `even`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Odd` should have a snake case name
[INFO] [stderr]   --> src/io/rpi/uart.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |             Odd => Parity::Odd,
[INFO] [stderr]    |             ^^^ help: convert the identifier to snake case (notice the capitalization): `odd`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Mark` should have a snake case name
[INFO] [stderr]   --> src/io/rpi/uart.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |             Mark => Parity::Mark,
[INFO] [stderr]    |             ^^^^ help: convert the identifier to snake case: `mark`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Space` should have a snake case name
[INFO] [stderr]   --> src/io/rpi/uart.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |             Space => Parity::Space
[INFO] [stderr]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `space`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/gpio.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 29 |         writeln!(self.file, "{:},1,S,{:},1 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/gpio.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |         writeln!(self.file, "{:},1,S,{:},0 ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/gpio.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |         writeln!(self.file, "{:},1,C,{:},O,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/gpio.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |         writeln!(self.file, "{:},1,C,{:},I,{:?} ; PrintGpioDriver", time_since_init.as_secs_f64(), pin_bcm, pull_mode);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/pwm.rs:48:21
[INFO] [stderr]    |
[INFO] [stderr] 48 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},1 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stderr] 49 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stderr]    | |__________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/io/sim_print/pwm.rs:51:21
[INFO] [stderr]    |
[INFO] [stderr] 51 | /                     writeln!(file.lock().unwrap(), "{:},1,S,{:},0 ; PrintPwmDriver {:}Hz, {:}DC", time_since_start.as_secs_f64(),
[INFO] [stderr] 52 | |                              pin_bcm, frequency.value, duty_cycle);
[INFO] [stderr]    | |__________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0170`.
[INFO] [stderr] warning: `cocos` (lib) generated 57 warnings (run `cargo fix --lib -p cocos` to apply 36 suggestions)
[INFO] [stderr] warning: `cocos` (lib test) generated 57 warnings (57 duplicates)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cocos-5943799234512e45)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/cocos_rpi.rs (/opt/rustwide/target/debug/deps/cocos_rpi-3519bcf5e6fae131)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/cocos_simulated.rs (/opt/rustwide/target/debug/deps/cocos_simulated-ae6009254aa223b2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cocos
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "864e0324caf7b5f5c3e9503263ee833485a3b46351763699c508b595c568b570", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "864e0324caf7b5f5c3e9503263ee833485a3b46351763699c508b595c568b570", kill_on_drop: false }`
[INFO] [stdout] 864e0324caf7b5f5c3e9503263ee833485a3b46351763699c508b595c568b570
