[INFO] cloning repository https://github.com/codexmicrosystems/field-management-system
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/codexmicrosystems/field-management-system" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodexmicrosystems%2Ffield-management-system", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodexmicrosystems%2Ffield-management-system'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7ac1e815dd2d0b3db7ccc40cf3ed839197742e47
[INFO] checking codexmicrosystems/field-management-system against try#1f5783cbeb5da8b38566d718631d016891e9c912 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodexmicrosystems%2Ffield-management-system" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/codexmicrosystems/field-management-system on toolchain 1f5783cbeb5da8b38566d718631d016891e9c912
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/codexmicrosystems/field-management-system
[INFO] finished tweaking git repo https://github.com/codexmicrosystems/field-management-system
[INFO] tweaked toml for git repo https://github.com/codexmicrosystems/field-management-system written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/codexmicrosystems/field-management-system 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" "+1f5783cbeb5da8b38566d718631d016891e9c912" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking codexmicrosystems/field-management-system against try#1f5783cbeb5da8b38566d718631d016891e9c912 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodexmicrosystems%2Ffield-management-system" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/codexmicrosystems/field-management-system on toolchain 1f5783cbeb5da8b38566d718631d016891e9c912
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/codexmicrosystems/field-management-system
[INFO] finished tweaking git repo https://github.com/codexmicrosystems/field-management-system
[INFO] tweaked toml for git repo https://github.com/codexmicrosystems/field-management-system written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/codexmicrosystems/field-management-system 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" "+1f5783cbeb5da8b38566d718631d016891e9c912" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ssh2 v0.9.4
[INFO] [stderr]   Downloaded s7 v0.1.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bcf44c7a1f1c80537255974b56e37d962f74264a715d3c874adbcc853eae2223
[INFO] running `Command { std: "docker" "start" "-a" "bcf44c7a1f1c80537255974b56e37d962f74264a715d3c874adbcc853eae2223", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bcf44c7a1f1c80537255974b56e37d962f74264a715d3c874adbcc853eae2223", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bcf44c7a1f1c80537255974b56e37d962f74264a715d3c874adbcc853eae2223", kill_on_drop: false }`
[INFO] [stdout] bcf44c7a1f1c80537255974b56e37d962f74264a715d3c874adbcc853eae2223
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+1f5783cbeb5da8b38566d718631d016891e9c912" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62566fe37d005b26d922acede689c050aac608ca6c537516d9fa170c452f0bbf
[INFO] running `Command { std: "docker" "start" "-a" "62566fe37d005b26d922acede689c050aac608ca6c537516d9fa170c452f0bbf", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking smallvec v1.11.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking s7 v0.1.9
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]    Compiling libz-sys v1.1.12
[INFO] [stderr]    Compiling openssl-sys v0.9.95
[INFO] [stderr]    Compiling libssh2-sys v0.3.0
[INFO] [stderr]     Checking ssh2 v0.9.4
[INFO] [stderr]     Checking field-management-system v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `driver_station`
[INFO] [stdout]   --> src/field/driver_station.rs:74:56
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn decode_status_packet(&mut self, data: [u8; 36], driver_station: u8) {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver_station`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver_station`
[INFO] [stdout]   --> src/field/driver_station.rs:74:56
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn decode_status_packet(&mut self, data: [u8; 36], driver_station: u8) {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver_station`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/network/switch.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut config = self.send_command("show network\n");
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/network/switch.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut config = self.send_command("show network\n");
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/network/switch.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut config = self.send_command("show network\n");
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/network/switch.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut config = self.send_command("show network\n");
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `red`
[INFO] [stdout]   --> src/plc/plc.rs:81:45
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_red`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `blue`
[INFO] [stdout]   --> src/plc/plc.rs:81:56
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amber`
[INFO] [stdout]   --> src/plc/plc.rs:81:68
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_amber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `green`
[INFO] [stdout]   --> src/plc/plc.rs:81:81
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_green`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]   --> src/main.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let field = Field::new();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `red`
[INFO] [stdout]   --> src/plc/plc.rs:81:45
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_red`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `blue`
[INFO] [stdout]   --> src/plc/plc.rs:81:56
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amber`
[INFO] [stdout]   --> src/plc/plc.rs:81:68
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_amber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `green`
[INFO] [stdout]   --> src/plc/plc.rs:81:81
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_green`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_TCP_LISTEN_PORT` is never used
[INFO] [stdout]  --> src/field/driver_station.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const DS_TCP_LISTEN_PORT: u16 = 1750;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_SEND_PORT` is never used
[INFO] [stdout]  --> src/field/driver_station.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const DS_UDP_SEND_PORT: u16 = 1121;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_RECEIVE_PORT` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DS_UDP_RECEIVE_PORT: u16 = 1160;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_TCP_LINK_TIMEOUT_SECONDS` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const DS_TCP_LINK_TIMEOUT_SECONDS: u8 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_LINK_TIMEOUT_SECONDS` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const DS_UDP_LINK_TIMEOUT_SECONDS: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TCP_PACKET_BYTES` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_TCP_PACKET_BYTES: u16 = 4096;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_NAMES` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const DS_NAMES: [&'static str; 6] = ["RED 1", "RED 2", "RED 3", "BLUE 1", "BLUE 2", "BLUE 3"];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DriverStation` is never constructed
[INFO] [stdout]   --> src/field/driver_station.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct DriverStation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode_control_packet`, `send_control_packet`, and `decode_status_packet` are never used
[INFO] [stdout]   --> src/field/driver_station.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl DriverStation {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 29 |     fn new() {}
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn encode_control_packet(&mut self, driver_station: u8) -> [u8; 22] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn send_control_packet(&mut self, driver_station: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn decode_status_packet(&mut self, data: [u8; 36], driver_station: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APStatus` is never constructed
[INFO] [stdout]  --> src/field/driver_station_status.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct APStatus {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RobotStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RobotStatus {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]   --> src/main.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let field = Field::new();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FMSStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FMSStatus {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DSStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct DSStatus {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchLog` is never constructed
[INFO] [stdout]  --> src/field/match_log.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MatchLog {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PORT` is never used
[INFO] [stdout]  --> src/network/access_point.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const SSH_PORT: &str = "22";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccessPoint` is never constructed
[INFO] [stdout]   --> src/network/access_point.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct AccessPoint {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_command` is never used
[INFO] [stdout]   --> src/network/access_point.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AccessPoint {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn run_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PORT` is never used
[INFO] [stdout]  --> src/network/switch.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const SSH_PORT: &str = "22";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_1_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RED_1_VLAN: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_2_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const RED_2_VLAN: u8 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_3_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RED_3_VLAN: u8 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_1_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const BLUE_1_VLAN: u8 = 40;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_2_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const BLUE_2_VLAN: u8 = 50;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_3_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const BLUE_3_VLAN: u8 = 60;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Switch` is never constructed
[INFO] [stdout]   --> src/network/switch.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Switch {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_TCP_LISTEN_PORT` is never used
[INFO] [stdout]  --> src/field/driver_station.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const DS_TCP_LISTEN_PORT: u16 = 1750;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `config_team_ethernet`, `get_team_vlans`, `send_command`, and `send_config_command` are never used
[INFO] [stdout]   --> src/network/switch.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Switch {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 25 |     #[must_use]
[INFO] [stdout] 26 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn config_team_ethernet() {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn get_team_vlans(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn send_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn send_config_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_SEND_PORT` is never used
[INFO] [stdout]  --> src/field/driver_station.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const DS_UDP_SEND_PORT: u16 = 1121;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PLC` is never constructed
[INFO] [stdout]   --> src/plc/plc.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PLC {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_RECEIVE_PORT` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DS_UDP_RECEIVE_PORT: u16 = 1160;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_TCP_LINK_TIMEOUT_SECONDS` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const DS_TCP_LINK_TIMEOUT_SECONDS: u8 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_UDP_LINK_TIMEOUT_SECONDS` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const DS_UDP_LINK_TIMEOUT_SECONDS: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TCP_PACKET_BYTES` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_TCP_PACKET_BYTES: u16 = 4096;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DS_NAMES` is never used
[INFO] [stdout]   --> src/field/driver_station.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const DS_NAMES: [&'static str; 6] = ["RED 1", "RED 2", "RED 3", "BLUE 1", "BLUE 2", "BLUE 3"];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/plc/plc.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl PLC {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 27 |     #[must_use]
[INFO] [stdout] 28 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn connect(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn run(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn update(&mut self) {}
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_field_estop(&mut self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_team_estops(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn set_team_stack_lights(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DriverStation` is never constructed
[INFO] [stdout]   --> src/field/driver_station.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct DriverStation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode_control_packet`, `send_control_packet`, and `decode_status_packet` are never used
[INFO] [stdout]   --> src/field/driver_station.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl DriverStation {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 29 |     fn new() {}
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn encode_control_packet(&mut self, driver_station: u8) -> [u8; 22] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn send_control_packet(&mut self, driver_station: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn decode_status_packet(&mut self, data: [u8; 36], driver_station: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APStatus` is never constructed
[INFO] [stdout]  --> src/field/driver_station_status.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct APStatus {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RobotStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RobotStatus {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FMSStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FMSStatus {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/plc/plc_inputs.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct PLCInputs {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 6  |     pub field_estop: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 7  |     pub red_estop_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 8  |     pub red_estop_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 9  |     pub red_estop_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 10 |     pub blue_estop_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub blue_estop_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub blue_estop_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub red_connected_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub red_connected_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub red_connected_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub blue_connected_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub blue_connected_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub blue_connected_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub input_count: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DSStatus` is never constructed
[INFO] [stdout]   --> src/field/driver_station_status.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct DSStatus {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchLog` is never constructed
[INFO] [stdout]  --> src/field/match_log.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MatchLog {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PORT` is never used
[INFO] [stdout]  --> src/network/access_point.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const SSH_PORT: &str = "22";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `from_array` and `to_array` are never used
[INFO] [stdout]   --> src/plc/plc_inputs.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl PLCInputs {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 23 |     pub fn from_array(&mut self, inputs: [bool; 13]) -> &mut PLCInputs {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn to_array(&self) -> [bool; 7] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccessPoint` is never constructed
[INFO] [stdout]   --> src/network/access_point.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct AccessPoint {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PLCOutputs` is never constructed
[INFO] [stdout]  --> src/plc/plc_outputs.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PLCOutputs {}
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_command` is never used
[INFO] [stdout]   --> src/network/access_point.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AccessPoint {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn run_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PORT` is never used
[INFO] [stdout]  --> src/network/switch.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const SSH_PORT: &str = "22";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_1_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RED_1_VLAN: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_2_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const RED_2_VLAN: u8 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RED_3_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RED_3_VLAN: u8 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_1_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const BLUE_1_VLAN: u8 = 40;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_2_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const BLUE_2_VLAN: u8 = 50;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLUE_3_VLAN` is never used
[INFO] [stdout]   --> src/network/switch.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const BLUE_3_VLAN: u8 = 60;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Switch` is never constructed
[INFO] [stdout]   --> src/network/switch.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Switch {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `config_team_ethernet`, `get_team_vlans`, `send_command`, and `send_config_command` are never used
[INFO] [stdout]   --> src/network/switch.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Switch {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 25 |     #[must_use]
[INFO] [stdout] 26 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn config_team_ethernet() {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn get_team_vlans(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn send_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn send_config_command(&mut self, command: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PLC` is never constructed
[INFO] [stdout]   --> src/plc/plc.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PLC {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/plc/plc.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl PLC {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 27 |     #[must_use]
[INFO] [stdout] 28 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn connect(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn run(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn update(&mut self) {}
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_field_estop(&mut self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_team_estops(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn set_field_stack_light(&mut self, red: bool, blue: bool, amber: bool, green: bool) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn set_team_stack_lights(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/plc/plc_inputs.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct PLCInputs {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 6  |     pub field_estop: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 7  |     pub red_estop_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 8  |     pub red_estop_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 9  |     pub red_estop_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 10 |     pub blue_estop_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub blue_estop_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub blue_estop_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub red_connected_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub red_connected_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub red_connected_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub blue_connected_1: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub blue_connected_2: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub blue_connected_3: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub input_count: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `from_array` and `to_array` are never used
[INFO] [stdout]   --> src/plc/plc_inputs.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl PLCInputs {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 23 |     pub fn from_array(&mut self, inputs: [bool; 13]) -> &mut PLCInputs {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn to_array(&self) -> [bool; 7] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PLCOutputs` is never constructed
[INFO] [stdout]  --> src/plc/plc_outputs.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PLCOutputs {}
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.88s
[INFO] running `Command { std: "docker" "inspect" "62566fe37d005b26d922acede689c050aac608ca6c537516d9fa170c452f0bbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62566fe37d005b26d922acede689c050aac608ca6c537516d9fa170c452f0bbf", kill_on_drop: false }`
[INFO] [stdout] 62566fe37d005b26d922acede689c050aac608ca6c537516d9fa170c452f0bbf
