[INFO] cloning repository https://github.com/coding-quizzer/bus_status
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coding-quizzer/bus_status" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoding-quizzer%2Fbus_status", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoding-quizzer%2Fbus_status'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 28b31e4eeff46fa52a9aae4c53af07c882af045d
[INFO] checking coding-quizzer/bus_status against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoding-quizzer%2Fbus_status" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/coding-quizzer/bus_status
[INFO] finished tweaking git repo https://github.com/coding-quizzer/bus_status
[INFO] tweaked toml for git repo https://github.com/coding-quizzer/bus_status written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/coding-quizzer/bus_status on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/coding-quizzer/bus_status 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 99d037d6f15d99128b26234e505ea44c653120a71c77ee0c2052ccb22361d3db
[INFO] running `Command { std: "docker" "start" "-a" "99d037d6f15d99128b26234e505ea44c653120a71c77ee0c2052ccb22361d3db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "99d037d6f15d99128b26234e505ea44c653120a71c77ee0c2052ccb22361d3db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99d037d6f15d99128b26234e505ea44c653120a71c77ee0c2052ccb22361d3db", kill_on_drop: false }`
[INFO] [stdout] 99d037d6f15d99128b26234e505ea44c653120a71c77ee0c2052ccb22361d3db
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fe65c328e75a70e3c39f77e500a898642d4317f572b22ee6c0d67c64ae0fa2aa
[INFO] running `Command { std: "docker" "start" "-a" "fe65c328e75a70e3c39f77e500a898642d4317f572b22ee6c0d67c64ae0fa2aa", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking libc v0.2.148
[INFO] [stderr]     Checking itoa v1.0.10
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking time-core v0.1.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking num-conv v0.1.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking ryu v1.0.16
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling syn v2.0.41
[INFO] [stderr]     Checking simple_logger v5.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]     Checking uuid v1.4.1
[INFO] [stderr]     Checking bus_system v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::station::Station`
[INFO] [stdout]  --> src/bus.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::station::Station;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/bus.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> src/bus.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::current;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/main_loop.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 |     BusMessages, BusThreadStatus, StationEventMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]   --> src/main_loop.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::thread::current;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main_loop.rs:915:20
[INFO] [stdout]     |
[INFO] [stdout] 915 |                 if (current_time_tick.number == 0) {
[INFO] [stdout]     |                    ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 915 -                 if (current_time_tick.number == 0) {
[INFO] [stdout] 915 +                 if current_time_tick.number == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main_loop.rs:1077:16
[INFO] [stdout]      |
[INFO] [stdout] 1077 |             if (bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout]      |                ^
[INFO] [stdout] ...
[INFO] [stdout] 1081 |             })) {
[INFO] [stdout]      |               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1077 ~             if bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout] 1078 |                 LOADING_BUS_VALID_STATUSES
[INFO] [stdout] 1079 |                     .iter()
[INFO] [stdout] 1080 |                     .any(|valid_status| bus_thread_status == valid_status)
[INFO] [stdout] 1081 ~             })  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/passenger.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{collections::VecDeque, iter::Peekable};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/station.rs:10:49
[INFO] [stdout]    |
[INFO] [stdout] 10 |     StationEventMessages, StationToBusMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `station`
[INFO] [stdout]   --> src/station.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::{station, TimeTick};
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]   --> src/station.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use core::time;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/station.rs:353:19
[INFO] [stdout]     |
[INFO] [stdout] 353 |             while (!time_tick_up_to_date) {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -             while (!time_tick_up_to_date) {
[INFO] [stdout] 353 +             while !time_tick_up_to_date  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:380:28
[INFO] [stdout]     |
[INFO] [stdout] 380 |                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout]     |                            ^                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 380 -                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout] 380 +                         if new_time_step.number - time_tick.number > 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:383:28
[INFO] [stdout]     |
[INFO] [stdout] 383 |                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout]     |                            ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout] 383 +                         if new_time_step.number < time_tick.number  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:700:28
[INFO] [stdout]     |
[INFO] [stdout] 700 |                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout]     |                            ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 700 -                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout] 700 +                         if received_message == StationEventMessages::NoMessage  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TerminalType`
[INFO] [stdout]  --> src/thread.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::display::{TerminalMessage, TerminalType};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/lib.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/bus.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...                   SyncToBusMessages::AdvanceTimeStep(time_step) => time_step,
[INFO] [stdout]     |                       --------------------------------------------- matches all the relevant values
[INFO] [stdout] 385 | ...                   // So far, there are no other options
[INFO] [stdout] 386 | ...                   _ => unreachable!(),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:819:16
[INFO] [stdout]     |
[INFO] [stdout] 819 |               if let crate::thread::StationToSyncMessages::CrashProgram { ref message } =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 820 | |                 incoming_message
[INFO] [stdout]     | |________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main_loop.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     SyncToBusMessages::AdvanceTimeStep(time_step) => {
[INFO] [stdout]     |                     --------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 332 |                     _ => unreachable!(),
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:425:16
[INFO] [stdout]     |
[INFO] [stdout] 425 |               if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 426 | |                 sync_message
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:505:24
[INFO] [stdout]     |
[INFO] [stdout] 505 |                       if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 506 | |                         sync_message.unwrap()
[INFO] [stdout]     | |_____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::station::Station`
[INFO] [stdout]  --> src/bus.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::station::Station;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/bus.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> src/bus.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::current;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/main_loop.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 |     BusMessages, BusThreadStatus, StationEventMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]   --> src/main_loop.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::thread::current;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main_loop.rs:915:20
[INFO] [stdout]     |
[INFO] [stdout] 915 |                 if (current_time_tick.number == 0) {
[INFO] [stdout]     |                    ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 915 -                 if (current_time_tick.number == 0) {
[INFO] [stdout] 915 +                 if current_time_tick.number == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main_loop.rs:1077:16
[INFO] [stdout]      |
[INFO] [stdout] 1077 |             if (bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout]      |                ^
[INFO] [stdout] ...
[INFO] [stdout] 1081 |             })) {
[INFO] [stdout]      |               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1077 ~             if bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout] 1078 |                 LOADING_BUS_VALID_STATUSES
[INFO] [stdout] 1079 |                     .iter()
[INFO] [stdout] 1080 |                     .any(|valid_status| bus_thread_status == valid_status)
[INFO] [stdout] 1081 ~             })  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/passenger.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{collections::VecDeque, iter::Peekable};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/station.rs:10:49
[INFO] [stdout]    |
[INFO] [stdout] 10 |     StationEventMessages, StationToBusMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `station`
[INFO] [stdout]   --> src/station.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::{station, TimeTick};
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]   --> src/station.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use core::time;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:474:21
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 let mut location_vec_deque = VecDeque::from(passenger_list.clone());
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/station.rs:353:19
[INFO] [stdout]     |
[INFO] [stdout] 353 |             while (!time_tick_up_to_date) {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -             while (!time_tick_up_to_date) {
[INFO] [stdout] 353 +             while !time_tick_up_to_date  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:380:28
[INFO] [stdout]     |
[INFO] [stdout] 380 |                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout]     |                            ^                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 380 -                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout] 380 +                         if new_time_step.number - time_tick.number > 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:383:28
[INFO] [stdout]     |
[INFO] [stdout] 383 |                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout]     |                            ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout] 383 +                         if new_time_step.number < time_tick.number  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:700:28
[INFO] [stdout]     |
[INFO] [stdout] 700 |                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout]     |                            ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 700 -                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout] 700 +                         if received_message == StationEventMessages::NoMessage  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TerminalType`
[INFO] [stdout]  --> src/thread.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::display::{TerminalMessage, TerminalType};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/lib.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut rejected_passengers: Vec<Passenger> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_time_tick` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_time_tick` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/main_loop.rs:612:56
[INFO] [stdout]     |
[INFO] [stdout] 612 |                 TerminalType::NoPassengerFromStation { index } => {
[INFO] [stdout]     |                                                        ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_time_tick` is never read
[INFO] [stdout]    --> src/main_loop.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |                 current_time_tick = new_time_tick;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_time_step`
[INFO] [stdout]    --> src/main_loop.rs:455:13
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let init_time_step: bool = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_time_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx_to_passengers`
[INFO] [stdout]   --> src/main_loop.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (tx_to_passengers, rx_to_passengers) = mpsc::channel::<Option<Vec<Passenger>>>();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx_to_passengers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_stations_to_sync_list`
[INFO] [stdout]    --> src/main_loop.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let (sender_stations_to_sync_list, receiver_sync_from_stations_list) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_stations_to_sync_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/main_loop.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_clone_check`
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_clone_check`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `passenger_thread_program_end_clone`
[INFO] [stdout]    --> src/main_loop.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let passenger_thread_program_end_clone = program_end.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passenger_thread_program_end_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed_moving_bus_received_count` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:739:9
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let mut processed_moving_bus_received_count;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_processed_moving_bus_received_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed_moving_bus_received_count` is never read
[INFO] [stdout]    --> src/main_loop.rs:842:13
[INFO] [stdout]     |
[INFO] [stdout] 842 |             processed_moving_bus_received_count = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_buses_are_moving`
[INFO] [stdout]    --> src/main_loop.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         all_buses_are_moving: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_buses_are_moving`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location_time_tick_hashmap`
[INFO] [stdout]   --> src/station.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let location_time_tick_hashmap =
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_time_tick_hashmap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/station.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     current_time_tick: &TimeTick,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `station_channels`
[INFO] [stdout]    --> src/station.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let station_channels = receive_in_station_channels_arc.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_station_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |                     Ok(SyncToStationAndPassengerMessages::ProgramFinished(_)) => {
[INFO] [stdout]     |                     --------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 368 |                     Ok(SyncToStationAndPassengerMessages::AdvanceTimeStep(new_time_step)) => {
[INFO] [stdout]     |                     --------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 391 |                     Err(TryRecvError::Empty) => {
[INFO] [stdout]     |                     ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 395 |                     Err(TryRecvError::Disconnected) => {
[INFO] [stdout]     |                     ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:531:25
[INFO] [stdout]     |
[INFO] [stdout] 531 |                         mut passengers_offboarding,
[INFO] [stdout]     |                         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_time_tick`
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus_route_vec`
[INFO] [stdout]    --> src/station.rs:949:29
[INFO] [stdout]     |
[INFO] [stdout] 949 |                         let bus_route_vec: Vec<_> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bus_route_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `caller_location`
[INFO] [stdout]   --> src/lib.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let caller_location = std::panic::Location::caller().line();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpdateOutput` is never used
[INFO] [stdout]   --> src/bus.rs:93:6
[INFO] [stdout]    |
[INFO] [stdout] 93 | enum UpdateOutput {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 | /         passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout] 170 | |             *time_tick,
[INFO] [stdout] 171 | |         ));
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let _ = passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:580:21
[INFO] [stdout]     |
[INFO] [stdout] 580 | /                     writeln!(
[INFO] [stdout] 581 | |                         writer,
[INFO] [stdout] 582 | |                         "No stations did anything - {}",
[INFO] [stdout] 583 | |                         passenger_message.time_tick
[INFO] [stdout] 584 | |                     );
[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] 580 |                     let _ = writeln!(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1006:13
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /             send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1007 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1008 | |             ));
[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] 1006 |             let _ = send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1009:13
[INFO] [stdout]      |
[INFO] [stdout] 1009 | /             send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1010 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1011 | |             ));
[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] 1009 |             let _ = send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::station::Station`
[INFO] [stdout]  --> src/bus.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::station::Station;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/bus.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> src/bus.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::current;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/main_loop.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 |     BusMessages, BusThreadStatus, StationEventMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]   --> src/main_loop.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::thread::current;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main_loop.rs:915:20
[INFO] [stdout]     |
[INFO] [stdout] 915 |                 if (current_time_tick.number == 0) {
[INFO] [stdout]     |                    ^                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 915 -                 if (current_time_tick.number == 0) {
[INFO] [stdout] 915 +                 if current_time_tick.number == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main_loop.rs:1077:16
[INFO] [stdout]      |
[INFO] [stdout] 1077 |             if (bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout]      |                ^
[INFO] [stdout] ...
[INFO] [stdout] 1081 |             })) {
[INFO] [stdout]      |               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1077 ~             if bus_status_vector.iter().all(|bus_thread_status| {
[INFO] [stdout] 1078 |                 LOADING_BUS_VALID_STATUSES
[INFO] [stdout] 1079 |                     .iter()
[INFO] [stdout] 1080 |                     .any(|valid_status| bus_thread_status == valid_status)
[INFO] [stdout] 1081 ~             })  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/passenger.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{collections::VecDeque, iter::Peekable};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StationToDisplayMessages`
[INFO] [stdout]   --> src/station.rs:10:49
[INFO] [stdout]    |
[INFO] [stdout] 10 |     StationEventMessages, StationToBusMessages, StationToDisplayMessages,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `station`
[INFO] [stdout]   --> src/station.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::{station, TimeTick};
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]   --> src/station.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use core::time;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/station.rs:353:19
[INFO] [stdout]     |
[INFO] [stdout] 353 |             while (!time_tick_up_to_date) {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -             while (!time_tick_up_to_date) {
[INFO] [stdout] 353 +             while !time_tick_up_to_date  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:380:28
[INFO] [stdout]     |
[INFO] [stdout] 380 |                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout]     |                            ^                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 380 -                         if (new_time_step.number - time_tick.number > 1) {
[INFO] [stdout] 380 +                         if new_time_step.number - time_tick.number > 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:383:28
[INFO] [stdout]     |
[INFO] [stdout] 383 |                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout]     |                            ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -                         if (new_time_step.number < time_tick.number) {
[INFO] [stdout] 383 +                         if new_time_step.number < time_tick.number  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/station.rs:700:28
[INFO] [stdout]     |
[INFO] [stdout] 700 |                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout]     |                            ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 700 -                         if (received_message == StationEventMessages::NoMessage) {
[INFO] [stdout] 700 +                         if received_message == StationEventMessages::NoMessage  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TerminalType`
[INFO] [stdout]  --> src/thread.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::display::{TerminalMessage, TerminalType};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/lib.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/bus.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...                   SyncToBusMessages::AdvanceTimeStep(time_step) => time_step,
[INFO] [stdout]     |                       --------------------------------------------- matches all the relevant values
[INFO] [stdout] 385 | ...                   // So far, there are no other options
[INFO] [stdout] 386 | ...                   _ => unreachable!(),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:819:16
[INFO] [stdout]     |
[INFO] [stdout] 819 |               if let crate::thread::StationToSyncMessages::CrashProgram { ref message } =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 820 | |                 incoming_message
[INFO] [stdout]     | |________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main_loop.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     SyncToBusMessages::AdvanceTimeStep(time_step) => {
[INFO] [stdout]     |                     --------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 332 |                     _ => unreachable!(),
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:425:16
[INFO] [stdout]     |
[INFO] [stdout] 425 |               if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 426 | |                 sync_message
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:505:24
[INFO] [stdout]     |
[INFO] [stdout] 505 |                       if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 506 | |                         sync_message.unwrap()
[INFO] [stdout]     | |_____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:474:21
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 let mut location_vec_deque = VecDeque::from(passenger_list.clone());
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut rejected_passengers: Vec<Passenger> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_time_tick` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_time_tick` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/main_loop.rs:612:56
[INFO] [stdout]     |
[INFO] [stdout] 612 |                 TerminalType::NoPassengerFromStation { index } => {
[INFO] [stdout]     |                                                        ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_time_tick` is never read
[INFO] [stdout]    --> src/main_loop.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |                 current_time_tick = new_time_tick;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_time_step`
[INFO] [stdout]    --> src/main_loop.rs:455:13
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let init_time_step: bool = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_time_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx_to_passengers`
[INFO] [stdout]   --> src/main_loop.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (tx_to_passengers, rx_to_passengers) = mpsc::channel::<Option<Vec<Passenger>>>();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx_to_passengers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_stations_to_sync_list`
[INFO] [stdout]    --> src/main_loop.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let (sender_stations_to_sync_list, receiver_sync_from_stations_list) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_stations_to_sync_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/main_loop.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_clone_check`
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_clone_check`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `passenger_thread_program_end_clone`
[INFO] [stdout]    --> src/main_loop.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let passenger_thread_program_end_clone = program_end.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passenger_thread_program_end_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed_moving_bus_received_count` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:739:9
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let mut processed_moving_bus_received_count;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_processed_moving_bus_received_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed_moving_bus_received_count` is never read
[INFO] [stdout]    --> src/main_loop.rs:842:13
[INFO] [stdout]     |
[INFO] [stdout] 842 |             processed_moving_bus_received_count = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_buses_are_moving`
[INFO] [stdout]    --> src/main_loop.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         all_buses_are_moving: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_buses_are_moving`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location_time_tick_hashmap`
[INFO] [stdout]   --> src/station.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let location_time_tick_hashmap =
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_time_tick_hashmap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/station.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     current_time_tick: &TimeTick,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `station_channels`
[INFO] [stdout]    --> src/station.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let station_channels = receive_in_station_channels_arc.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_station_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |                     Ok(SyncToStationAndPassengerMessages::ProgramFinished(_)) => {
[INFO] [stdout]     |                     --------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 368 |                     Ok(SyncToStationAndPassengerMessages::AdvanceTimeStep(new_time_step)) => {
[INFO] [stdout]     |                     --------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 391 |                     Err(TryRecvError::Empty) => {
[INFO] [stdout]     |                     ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 395 |                     Err(TryRecvError::Disconnected) => {
[INFO] [stdout]     |                     ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:531:25
[INFO] [stdout]     |
[INFO] [stdout] 531 |                         mut passengers_offboarding,
[INFO] [stdout]     |                         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_time_tick`
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus_route_vec`
[INFO] [stdout]    --> src/station.rs:949:29
[INFO] [stdout]     |
[INFO] [stdout] 949 |                         let bus_route_vec: Vec<_> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bus_route_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `caller_location`
[INFO] [stdout]   --> src/lib.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let caller_location = std::panic::Location::caller().line();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpdateOutput` is never used
[INFO] [stdout]   --> src/bus.rs:93:6
[INFO] [stdout]    |
[INFO] [stdout] 93 | enum UpdateOutput {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 | /         passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout] 170 | |             *time_tick,
[INFO] [stdout] 171 | |         ));
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let _ = passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:580:21
[INFO] [stdout]     |
[INFO] [stdout] 580 | /                     writeln!(
[INFO] [stdout] 581 | |                         writer,
[INFO] [stdout] 582 | |                         "No stations did anything - {}",
[INFO] [stdout] 583 | |                         passenger_message.time_tick
[INFO] [stdout] 584 | |                     );
[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] 580 |                     let _ = writeln!(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1006:13
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /             send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1007 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1008 | |             ));
[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] 1006 |             let _ = send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1009:13
[INFO] [stdout]      |
[INFO] [stdout] 1009 | /             send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1010 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1011 | |             ));
[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] 1009 |             let _ = send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/bus.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 384 | ...                   SyncToBusMessages::AdvanceTimeStep(time_step) => time_step,
[INFO] [stdout]     |                       --------------------------------------------- matches all the relevant values
[INFO] [stdout] 385 | ...                   // So far, there are no other options
[INFO] [stdout] 386 | ...                   _ => unreachable!(),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:819:16
[INFO] [stdout]     |
[INFO] [stdout] 819 |               if let crate::thread::StationToSyncMessages::CrashProgram { ref message } =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 820 | |                 incoming_message
[INFO] [stdout]     | |________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main_loop.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     SyncToBusMessages::AdvanceTimeStep(time_step) => {
[INFO] [stdout]     |                     --------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 332 |                     _ => unreachable!(),
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:425:16
[INFO] [stdout]     |
[INFO] [stdout] 425 |               if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 426 | |                 sync_message
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/main_loop.rs:505:24
[INFO] [stdout]     |
[INFO] [stdout] 505 |                       if let StationToPassengersMessages::ConfirmInitPassengerList(station_number) =
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 506 | |                         sync_message.unwrap()
[INFO] [stdout]     | |_____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:474:21
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 let mut location_vec_deque = VecDeque::from(passenger_list.clone());
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main_loop.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut rejected_passengers: Vec<Passenger> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_time_tick` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_time_tick` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/main_loop.rs:612:56
[INFO] [stdout]     |
[INFO] [stdout] 612 |                 TerminalType::NoPassengerFromStation { index } => {
[INFO] [stdout]     |                                                        ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_time_tick` is never read
[INFO] [stdout]    --> src/main_loop.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |                 current_time_tick = new_time_tick;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_time_step`
[INFO] [stdout]    --> src/main_loop.rs:455:13
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let init_time_step: bool = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_time_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx_to_passengers`
[INFO] [stdout]   --> src/main_loop.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (tx_to_passengers, rx_to_passengers) = mpsc::channel::<Option<Vec<Passenger>>>();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx_to_passengers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_stations_to_sync_list`
[INFO] [stdout]    --> src/main_loop.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let (sender_stations_to_sync_list, receiver_sync_from_stations_list) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_stations_to_sync_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/main_loop.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let current_time_tick = TimeTick::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time_clone_check`
[INFO] [stdout]    --> src/main_loop.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut time_clone_check = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_time_clone_check`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `passenger_thread_program_end_clone`
[INFO] [stdout]    --> src/main_loop.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let passenger_thread_program_end_clone = program_end.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passenger_thread_program_end_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `processed_moving_bus_received_count` is assigned to, but never used
[INFO] [stdout]    --> src/main_loop.rs:739:9
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let mut processed_moving_bus_received_count;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_processed_moving_bus_received_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `processed_moving_bus_received_count` is never read
[INFO] [stdout]    --> src/main_loop.rs:842:13
[INFO] [stdout]     |
[INFO] [stdout] 842 |             processed_moving_bus_received_count = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_buses_are_moving`
[INFO] [stdout]    --> src/main_loop.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         all_buses_are_moving: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_buses_are_moving`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location_time_tick_hashmap`
[INFO] [stdout]   --> src/station.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let location_time_tick_hashmap =
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_time_tick_hashmap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_time_tick`
[INFO] [stdout]    --> src/station.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     current_time_tick: &TimeTick,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `station_channels`
[INFO] [stdout]    --> src/station.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let station_channels = receive_in_station_channels_arc.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_station_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/station.rs:398:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |                     Ok(SyncToStationAndPassengerMessages::ProgramFinished(_)) => {
[INFO] [stdout]     |                     --------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 368 |                     Ok(SyncToStationAndPassengerMessages::AdvanceTimeStep(new_time_step)) => {
[INFO] [stdout]     |                     --------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 391 |                     Err(TryRecvError::Empty) => {
[INFO] [stdout]     |                     ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 395 |                     Err(TryRecvError::Disconnected) => {
[INFO] [stdout]     |                     ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 398 |                     _ => {}
[INFO] [stdout]     |                     ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/station.rs:531:25
[INFO] [stdout]     |
[INFO] [stdout] 531 |                         mut passengers_offboarding,
[INFO] [stdout]     |                         ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_time_tick`
[INFO] [stdout]    --> src/station.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let mut previous_time_tick: Option<TimeTick> = None;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_time_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus_route_vec`
[INFO] [stdout]    --> src/station.rs:949:29
[INFO] [stdout]     |
[INFO] [stdout] 949 |                         let bus_route_vec: Vec<_> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bus_route_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `caller_location`
[INFO] [stdout]   --> src/lib.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let caller_location = std::panic::Location::caller().line();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_caller_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpdateOutput` is never used
[INFO] [stdout]   --> src/bus.rs:93:6
[INFO] [stdout]    |
[INFO] [stdout] 93 | enum UpdateOutput {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 | /         passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout] 170 | |             *time_tick,
[INFO] [stdout] 171 | |         ));
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let _ = passenger_sender.send(SyncToStationAndPassengerMessages::AdvanceTimeStep(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_loop.rs:580:21
[INFO] [stdout]     |
[INFO] [stdout] 580 | /                     writeln!(
[INFO] [stdout] 581 | |                         writer,
[INFO] [stdout] 582 | |                         "No stations did anything - {}",
[INFO] [stdout] 583 | |                         passenger_message.time_tick
[INFO] [stdout] 584 | |                     );
[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] 580 |                     let _ = writeln!(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1006:13
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /             send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1007 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1008 | |             ));
[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] 1006 |             let _ = send_to_passengers.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main_loop.rs:1009:13
[INFO] [stdout]      |
[INFO] [stdout] 1009 | /             send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout] 1010 | |                 crate::thread::ProgramEndType::ProgramFinished,
[INFO] [stdout] 1011 | |             ));
[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] 1009 |             let _ = send_to_display.send(SyncToStationAndPassengerMessages::ProgramFinished(
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bus_system::consts::DEFAULT_BUS_CAPACITY`
[INFO] [stdout]  --> tests/main_loop_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bus_system::consts::DEFAULT_BUS_CAPACITY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::uuid`
[INFO] [stdout]  --> tests/passenger_bus_route.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use uuid::uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.80s
[INFO] running `Command { std: "docker" "inspect" "fe65c328e75a70e3c39f77e500a898642d4317f572b22ee6c0d67c64ae0fa2aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe65c328e75a70e3c39f77e500a898642d4317f572b22ee6c0d67c64ae0fa2aa", kill_on_drop: false }`
[INFO] [stdout] fe65c328e75a70e3c39f77e500a898642d4317f572b22ee6c0d67c64ae0fa2aa
