[INFO] cloning repository https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkraam02%2FSmart-Home-Simulation-using-RabbitMQ---Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkraam02%2FSmart-Home-Simulation-using-RabbitMQ---Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 57c2479cf83e1e8c7a58add48134159d7189417f
[INFO] checking Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkraam02%2FSmart-Home-Simulation-using-RabbitMQ---Rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust
[INFO] finished tweaking git repo https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust
[INFO] tweaked toml for git repo https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ikraam02/Smart-Home-Simulation-using-RabbitMQ---Rust 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d22dde4f89f382c4ba01e4eafb8bd21482f91e40f0f3766da047fa745930a7bc
[INFO] running `Command { std: "docker" "start" "-a" "d22dde4f89f382c4ba01e4eafb8bd21482f91e40f0f3766da047fa745930a7bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d22dde4f89f382c4ba01e4eafb8bd21482f91e40f0f3766da047fa745930a7bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d22dde4f89f382c4ba01e4eafb8bd21482f91e40f0f3766da047fa745930a7bc", kill_on_drop: false }`
[INFO] [stdout] d22dde4f89f382c4ba01e4eafb8bd21482f91e40f0f3766da047fa745930a7bc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 98e1e4c21c131c4513d546ca0594c66feba1bae727133bb63f0001c6fba3794b
[INFO] running `Command { std: "docker" "start" "-a" "98e1e4c21c131c4513d546ca0594c66feba1bae727133bb63f0001c6fba3794b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.85
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling cc v1.0.99
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking either v1.12.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking csv-core v0.1.11
[INFO] [stderr]     Checking plotters-backend v0.3.6
[INFO] [stderr]     Checking anstyle v1.0.7
[INFO] [stderr]     Checking clap_lex v0.7.1
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking plotters-svg v0.3.6
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking encode_unicode v1.0.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]     Checking num-format v0.4.4
[INFO] [stderr]     Checking plotters v0.3.6
[INFO] [stderr]     Checking clap_builder v4.5.6
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking terminal_size v0.1.17
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking term v0.7.0
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.7
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling openssl-sys v0.9.102
[INFO] [stderr]     Checking clap v4.5.6
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.203
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking regex v1.10.5
[INFO] [stderr]    Compiling snafu-derive v0.7.5
[INFO] [stderr]    Compiling bma-benchmark-proc v0.0.18
[INFO] [stderr]     Checking pest v2.7.10
[INFO] [stderr]     Checking snafu v0.7.5
[INFO] [stderr]    Compiling pest_meta v2.7.10
[INFO] [stderr]    Compiling pest_generator v2.7.10
[INFO] [stderr]    Compiling pest_derive v2.7.10
[INFO] [stderr]     Checking csv v1.3.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking prettytable-rs v0.10.0
[INFO] [stderr]     Checking bma-benchmark v0.0.24
[INFO] [stderr]     Checking handlebars v1.1.0
[INFO] [stderr]     Checking amq-protocol-types v1.2.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]    Compiling cargo-lock v8.0.3
[INFO] [stderr]     Checking amq-protocol-codegen v1.4.0
[INFO] [stderr]    Compiling built v0.5.2
[INFO] [stderr]    Compiling amiquip v0.4.2
[INFO] [stderr]    Compiling amq-protocol v1.4.0
[INFO] [stderr]     Checking smarthome v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ConsumerMessage`, `ConsumerOptions`, and `Exchange`
[INFO] [stdout]  --> src/rabbitmq_functions.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amiquip::{Result,Connection,Exchange,Publish, 
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 5 |     QueueDeclareOptions, ConsumerOptions, ConsumerMessage, ExchangeDeclareOptions, ExchangeType, FieldTable};
[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: `sleep`
[INFO] [stdout]  --> src/Subsystem1/UserInterface.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     thread::{self, sleep},
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/Subsystem2/light_simulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduled_thread_pool::ScheduledThreadPool`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use scheduled_thread_pool::ScheduledThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize,Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `error::Error`, and `sleep`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     sync::{Arc, Mutex},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 15 |     thread::{self, sleep},
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 16 |     time::Duration,
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ConsumerMessage`, `ConsumerOptions`, `ExchangeDeclareOptions`, `ExchangeType`, `FieldTable`, `Publish`, `QueueDeclareOptions`, and `Result`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use amiquip::{Connection, ConsumerMessage, ConsumerOptions, ExchangeType, 
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 20 |     FieldTable, QueueDeclareOptions, Result, ExchangeDeclareOptions, Publish};
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsumerMessage`, `ConsumerOptions`, and `Exchange`
[INFO] [stdout]  --> src/rabbitmq_functions.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amiquip::{Result,Connection,Exchange,Publish, 
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 5 |     QueueDeclareOptions, ConsumerOptions, ConsumerMessage, ExchangeDeclareOptions, ExchangeType, FieldTable};
[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: `sleep`
[INFO] [stdout]  --> src/Subsystem1/UserInterface.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     thread::{self, sleep},
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/Subsystem2/light_simulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduled_thread_pool::ScheduledThreadPool`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use scheduled_thread_pool::ScheduledThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize,Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `error::Error`, and `sleep`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     sync::{Arc, Mutex},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 15 |     thread::{self, sleep},
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 16 |     time::Duration,
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ConsumerMessage`, `ConsumerOptions`, `ExchangeDeclareOptions`, `ExchangeType`, `FieldTable`, `Publish`, `QueueDeclareOptions`, and `Result`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use amiquip::{Connection, ConsumerMessage, ConsumerOptions, ExchangeType, 
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 20 |     FieldTable, QueueDeclareOptions, Result, ExchangeDeclareOptions, Publish};
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:103:35
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:103:35
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:128:16
[INFO] [stdout]     |
[INFO] [stdout] 128 |     NaiveTime::from_hms(hour as u32, minute as u32, 0)
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:128:16
[INFO] [stdout]     |
[INFO] [stdout] 128 |     NaiveTime::from_hms(hour as u32, minute as u32, 0)
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:86:61
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let light_intensities: Vec<f64> = rooms.iter().map(|room| {
[INFO] [stdout]    |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:86:61
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let light_intensities: Vec<f64> = rooms.iter().map(|room| {
[INFO] [stdout]    |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rooms`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let rooms = ["Laundry Room"];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rooms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found` is assigned to, but never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut found: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     found = true;
[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: function `get_user_input` is never used
[INFO] [stdout]   --> src/rabbitmq_functions.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn get_user_input(prompt: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotificationMessage` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct NotificationMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl SmartSwitch {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn turn_on(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rooms`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let rooms = ["Laundry Room"];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rooms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct LightSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found` is assigned to, but never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut found: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     found = true;
[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: associated items `new` and `detect_brightness` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl LightSensor {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn detect_brightness(&self, actual_brightness: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem1` should have a snake case name
[INFO] [stdout]  --> src/lib.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod Subsystem1;
[INFO] [stdout]   |         ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem1`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem2` should have a snake case name
[INFO] [stdout]  --> src/lib.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod Subsystem2;
[INFO] [stdout]   |         ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UserInterface` should have a snake case name
[INFO] [stdout]  --> src/Subsystem1/mod.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod UserInterface;
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `user_interface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_input` is never used
[INFO] [stdout]   --> src/rabbitmq_functions.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn get_user_input(prompt: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotificationMessage` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct NotificationMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl SmartSwitch {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn turn_on(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 send_notification(&schedule);
[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] 248 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct LightSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `detect_brightness` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl LightSensor {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn detect_brightness(&self, actual_brightness: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 send_notification(&schedule);
[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] 156 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem1` should have a snake case name
[INFO] [stdout]  --> src/lib.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod Subsystem1;
[INFO] [stdout]   |         ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem1`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem2` should have a snake case name
[INFO] [stdout]  --> src/lib.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod Subsystem2;
[INFO] [stdout]   |         ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UserInterface` should have a snake case name
[INFO] [stdout]  --> src/Subsystem1/mod.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod UserInterface;
[INFO] [stdout]   |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `user_interface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 send_notification(&schedule);
[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] 248 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 send_notification(&schedule);
[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] 156 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> benches/simulation_benchmark.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> benches/simulation_benchmark.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> benches/simulation_benchmark.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> benches/simulation_benchmark.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `black_box`
[INFO] [stdout]  --> benches/simulation_benchmark.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use criterion::{black_box, criterion_group, criterion_main, Criterion};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Exchange`
[INFO] [stdout]  --> src/bin/sender.rs:5:35
[INFO] [stdout]   |
[INFO] [stdout] 5 | use amiquip::{Result, Connection, Exchange, Publish, QueueDeclareOptions, ExchangeDeclareOptions, ExchangeType, FieldTable};
[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: `sleep`
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::thread::{self, sleep};
[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: `regex::Regex`
[INFO] [stdout]  --> src/Subsystem2/light_simulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduled_thread_pool::ScheduledThreadPool`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use scheduled_thread_pool::ScheduledThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize,Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `error::Error`, and `sleep`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     sync::{Arc, Mutex},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 15 |     thread::{self, sleep},
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 16 |     time::Duration,
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ConsumerMessage`, `ConsumerOptions`, `ExchangeDeclareOptions`, `ExchangeType`, `FieldTable`, `Publish`, `QueueDeclareOptions`, and `Result`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use amiquip::{Connection, ConsumerMessage, ConsumerOptions, ExchangeType, 
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 20 |     FieldTable, QueueDeclareOptions, Result, ExchangeDeclareOptions, Publish};
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Exchange`
[INFO] [stdout]  --> src/bin/sender.rs:5:35
[INFO] [stdout]   |
[INFO] [stdout] 5 | use amiquip::{Result, Connection, Exchange, Publish, QueueDeclareOptions, ExchangeDeclareOptions, ExchangeType, FieldTable};
[INFO] [stdout]   |                                   ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:103:35
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:128:16
[INFO] [stdout]     |
[INFO] [stdout] 128 |     NaiveTime::from_hms(hour as u32, minute as u32, 0)
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:86:61
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let light_intensities: Vec<f64> = rooms.iter().map(|room| {
[INFO] [stdout]    |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rooms`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let rooms = ["Laundry Room"];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rooms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found` is assigned to, but never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut found: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     found = true;
[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: struct `TemperatureSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TemperatureSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `detect_temperature` are never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl TemperatureSensor {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 26 |     fn new(id: &str, room: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn detect_temperature(&self, actual_temperature: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AirConditioner` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct AirConditioner {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fan` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct Fan {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_temperature` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn simulation_of_clock_and_temperature() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_receiver` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn start_receiver(schedule: Arc<Mutex<String>>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_notification` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn send_notification(notification: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotificationMessage` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct NotificationMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmartSwitch` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct SmartSwitch {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl SmartSwitch {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn turn_on(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct LightSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `detect_brightness` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl LightSensor {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn detect_brightness(&self, actual_brightness: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn simulate_day(day: usize, is_rainy: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn get_current_time(half_hour: usize) -> NaiveTime {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_brightness` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn simulation_of_clock_and_brightness() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WashingMachine` is never constructed
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct WashingMachine {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl WashingMachine {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 28 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn turn_on(&mut self, cycle: &str) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_washing_machine` is never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn simulation_of_clock_and_washing_machine() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_receiver` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn start_receiver(schedule: Arc<Mutex<String>>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_notification` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn send_notification(notification: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem2` should have a snake case name
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod Subsystem2;
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem2`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 send_notification(&schedule);
[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] 248 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 send_notification(&schedule);
[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] 156 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::thread::{self, sleep};
[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: `regex::Regex`
[INFO] [stdout]  --> src/Subsystem2/light_simulation.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduled_thread_pool::ScheduledThreadPool`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use scheduled_thread_pool::ScheduledThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize,Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `error::Error`, and `sleep`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     sync::{Arc, Mutex},
[INFO] [stdout]    |            ^^^  ^^^^^
[INFO] [stdout] 15 |     thread::{self, sleep},
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 16 |     time::Duration,
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ConsumerMessage`, `ConsumerOptions`, `ExchangeDeclareOptions`, `ExchangeType`, `FieldTable`, `Publish`, `QueueDeclareOptions`, and `Result`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use amiquip::{Connection, ConsumerMessage, ConsumerOptions, ExchangeType, 
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 20 |     FieldTable, QueueDeclareOptions, Result, ExchangeDeclareOptions, Publish};
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::thread::{self, sleep};
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:103:35
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:128:16
[INFO] [stdout]     |
[INFO] [stdout] 128 |     NaiveTime::from_hms(hour as u32, minute as u32, 0)
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `Subsystem2::temperature_simulation::chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let time = NaiveTime::from_hms(hour as u32, minute as u32, 0);
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:86:61
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let light_intensities: Vec<f64> = rooms.iter().map(|room| {
[INFO] [stdout]    |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rooms`
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let rooms = ["Laundry Room"];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rooms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found` is assigned to, but never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut found: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found` is never read
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     found = true;
[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: struct `TemperatureSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TemperatureSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `detect_temperature` are never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl TemperatureSensor {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 26 |     fn new(id: &str, room: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn detect_temperature(&self, actual_temperature: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AirConditioner` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct AirConditioner {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fan` is never constructed
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct Fan {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/temperature_simulation.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_temperature` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn simulation_of_clock_and_temperature() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_receiver` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn start_receiver(schedule: Arc<Mutex<String>>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_notification` is never used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn send_notification(notification: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotificationMessage` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct NotificationMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmartSwitch` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct SmartSwitch {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl SmartSwitch {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn turn_on(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightSensor` is never constructed
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct LightSensor {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `detect_brightness` are never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl LightSensor {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn detect_brightness(&self, actual_brightness: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/light_simulation.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn simulate_day(day: usize, is_rainy: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn get_current_time(half_hour: usize) -> NaiveTime {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_brightness` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn simulation_of_clock_and_brightness() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/light_simulation.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WashingMachine` is never constructed
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct WashingMachine {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `turn_on`, and `turn_off` are never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl WashingMachine {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 28 |     fn new(id: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn turn_on(&mut self, cycle: &str) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn turn_off(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_day` is never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn simulate_day(day: usize, is_rainy: bool, schedule: Arc<Mutex<String>>, pool: Arc<ScheduledThreadPool>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulation_of_clock_and_washing_machine` is never used
[INFO] [stdout]   --> src/Subsystem2/washing_machine.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn simulation_of_clock_and_washing_machine() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_receiver` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn start_receiver(schedule: Arc<Mutex<String>>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_notification` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn send_notification(notification: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_time` is never used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn parse_time(time_str: &str) -> Option<NaiveTime> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Subsystem2` should have a snake case name
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod Subsystem2;
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `subsystem2`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/temperature_simulation.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 send_notification(&schedule);
[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] 248 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/Subsystem2/washing_machine.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 send_notification(&schedule);
[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] 156 |                 let _ = send_notification(&schedule);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.87s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v4.2.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "98e1e4c21c131c4513d546ca0594c66feba1bae727133bb63f0001c6fba3794b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98e1e4c21c131c4513d546ca0594c66feba1bae727133bb63f0001c6fba3794b", kill_on_drop: false }`
[INFO] [stdout] 98e1e4c21c131c4513d546ca0594c66feba1bae727133bb63f0001c6fba3794b
