[INFO] cloning repository https://github.com/Captain-Ironbump/mqtt-rust-broker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Captain-Ironbump/mqtt-rust-broker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptain-Ironbump%2Fmqtt-rust-broker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptain-Ironbump%2Fmqtt-rust-broker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 283faf623e02cb5dbe8851c6ff3129215979bc91
[INFO] building Captain-Ironbump/mqtt-rust-broker against master#ad211ced81509462cdfe4c29ed10f97279a0acae for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCaptain-Ironbump%2Fmqtt-rust-broker" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Captain-Ironbump/mqtt-rust-broker on toolchain ad211ced81509462cdfe4c29ed10f97279a0acae
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Captain-Ironbump/mqtt-rust-broker
[INFO] finished tweaking git repo https://github.com/Captain-Ironbump/mqtt-rust-broker
[INFO] tweaked toml for git repo https://github.com/Captain-Ironbump/mqtt-rust-broker written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Captain-Ironbump/mqtt-rust-broker 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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mqtt_packet_3_5 v0.2.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ced1e9f0628496c91734166b187c1fd0495e21f8b0aa58362da660c172f590f4
[INFO] running `Command { std: "docker" "start" "-a" "ced1e9f0628496c91734166b187c1fd0495e21f8b0aa58362da660c172f590f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ced1e9f0628496c91734166b187c1fd0495e21f8b0aa58362da660c172f590f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ced1e9f0628496c91734166b187c1fd0495e21f8b0aa58362da660c172f590f4", kill_on_drop: false }`
[INFO] [stdout] ced1e9f0628496c91734166b187c1fd0495e21f8b0aa58362da660c172f590f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] aa34de254cdcf263e4e96972ce21341b299f34d76603c5fffa143e17c8454cdd
[INFO] running `Command { std: "docker" "start" "-a" "aa34de254cdcf263e4e96972ce21341b299f34d76603c5fffa143e17c8454cdd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.88
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.161
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling unicode-bidi v0.3.17
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling bytes v1.7.2
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling cpufeatures v0.2.14
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling mqtt_packet_3_5 v0.2.2
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling mio v1.0.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling is-terminal v0.4.13
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling url v2.5.2
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha-1 v0.10.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tokio v1.40.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tungstenite v0.17.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-tungstenite v0.17.2
[INFO] [stderr]    Compiling mqtt-broker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/models/mqtt_types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::SplitSink`
[INFO] [stdout]  --> src/models/mqtt_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::stream::SplitSink;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/models/mqtt_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message`
[INFO] [stdout]  --> src/models/mqtt_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_tungstenite::tungstenite::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/models/mqtt_types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{info, warn, error};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectHeader`
[INFO] [stdout]   --> src/models/mqtt_types.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::models::mqtt_headers::{ConnAckHeader, ConnectHeader, MqttHeaders};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadFactory`
[INFO] [stdout]   --> src/models/mqtt_types.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::models::mqtt_payloads::{Payload, PayloadFactory};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/models/mqtt_headers.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/packets/connect.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectPayload`
[INFO] [stdout]  --> src/models/packets/connect.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::mqtt_payloads::{Payload, ConnectPayload};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::mqtt_types::MqttPacketType`
[INFO] [stdout]  --> src/models/packets/connect.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::models::mqtt_types::MqttPacketType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/models/broker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:39
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:39
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:22
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:38
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:38
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:41
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:22
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:38
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:27
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:43
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:40
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:24
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:42
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientState` is more private than the item `Broker::get_client`
[INFO] [stdout]   --> src/models/broker.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Broker::get_client` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ClientState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/models/broker.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/models/mqtt_types.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MqttPacketType {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     PubAck = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 23 |     PubRec = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     PubRel = 6,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     PubComp = 7,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 26 |     Subscribe = 8,
[INFO] [stdout] 27 |     SubAck = 9,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     Unsubscribe = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 29 |     UnsubAck = 11,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     PingReq = 12,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     PingResp = 13,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     Disconnect = 14,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttPacketType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_u8` is never used
[INFO] [stdout]   --> src/models/mqtt_types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl MqttPacketType {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn from_u8(value: u8) -> Result<Self, &'static str> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttPacketDispatcher` is never constructed
[INFO] [stdout]   --> src/models/mqtt_types.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct MqttPacketDispatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttPacketDispatcher` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/models/mqtt_types.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout] 87  | impl MqttPacketDispatcher {
[INFO] [stdout]     | ------------------------- associated functions in this implementation
[INFO] [stdout] 88  |     pub fn new() -> Result<Self, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn handle_connect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttHeaders` is never constructed
[INFO] [stdout]  --> src/models/mqtt_headers.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct MqttHeaders {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MqttHeaders` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, `to_bytes`, `size`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl MqttHeaders {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 17  |
[INFO] [stdout] 18  |     pub fn new(packet_type: MqttPacketType, flags: u8, remaining_length: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     pub fn parse(buffer: &[u8]) -> Result<Self, &'static str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn incomming_byte_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header_type` and `as_any` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait VariableHeader {
[INFO] [stdout]     |           -------------- methods in this trait
[INFO] [stdout] 110 |     fn header_type(&self) -> MqttPacketType;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 111 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PROTOCOL_NAME_LENGTH`, `increment_index`, `new`, `from_bytes`, and `size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ConnectHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 182 |     const PROTOCOL_NAME_LENGTH: usize = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn increment_index(idx: &mut usize, value: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn new(protocol_name: String, protocol_level: u8, connect_flags: u8, keep_alive: u16) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn from_bytes(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn size() -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SESSION_PRESENT_MASK`, `SESSION_PRESENT_INVALID_MASK`, `new`, `from_bytes`, `to_bytes`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl ConnAckHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 239 |     const SESSION_PRESENT_MASK: u8 = 0x01;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 240 |     const SESSION_PRESENT_INVALID_MASK: u8 = 0xFE;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 241 |
[INFO] [stdout] 242 |     pub fn new(session_present: bool, return_code: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn from_bytes(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn incomming_byte_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectPayload` is never constructed
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnectPayload {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ConnectPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PublishPayload` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PublishPayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PublishPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SubscribePayload` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SubscribePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SubscribePayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Payload` is never used
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Payload {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Payload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PayloadFactory` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PayloadFactory;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl PayloadFactory {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 38 |     const WILL_FLAG: u8 = 0b00000100;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 39 |     const USER_NAME_FLAG: u8 = 0b10000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     const PASSWORD_FLAG: u8 = 0b01000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 41 |     const QOS_MASK_VALID: u8 = 0b00000011;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     const QOS_MASK_INVALID: u8 = 0b11111100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |
[INFO] [stdout] 44 |     fn extract_utf8_string(payload_data: &[u8], start_idx: &mut usize) -> (usize, String) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn parse_payload(variable_header: &dyn VariableHeader, payload_data: Vec<u8>) -> Payload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect` is never constructed
[INFO] [stdout]  --> src/models/packets/connect.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Connect {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `MINIMUM_REMAINING_LENGTH`, `new`, and `from_bytes` are never used
[INFO] [stdout]   --> src/models/packets/connect.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Connect {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 15 |     const MINIMUM_REMAINING_LENGTH: u32 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |
[INFO] [stdout] 17 |     pub fn new(fixed_header: MqttHeaders, variable_header: ConnectHeader, payload: Payload) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnAck` is never constructed
[INFO] [stdout]  --> src/models/packets/connack.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnAck {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_bytes`, and `to_bytes` are never used
[INFO] [stdout]   --> src/models/packets/connack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ConnAck {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(fixed_header: MqttHeaders, variable_header: ConnAckHeader, payload: Payload) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionStatus` is never used
[INFO] [stdout]  --> src/models/broker.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum ConnectionStatus {
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientState` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_last_seen`, and `is_alive` are never used
[INFO] [stdout]   --> src/models/broker.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ClientState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(client_id: &str, keep_alive: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn update_last_seen(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Broker` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Broker {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Broker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_client`, `remove_client`, `update_client_activity`, `get_client`, and `is_client_connected` are never used
[INFO] [stdout]   --> src/models/broker.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Broker {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 49 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn add_client(&mut self, client_id: &str, keep_alive: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn remove_client(&mut self, client_id: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn update_client_activity(&mut self, client_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn is_client_connected(&self, client_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/models/mqtt_types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::SplitSink`
[INFO] [stdout]  --> src/models/mqtt_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::stream::SplitSink;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/models/mqtt_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message`
[INFO] [stdout]  --> src/models/mqtt_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_tungstenite::tungstenite::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/models/mqtt_types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{info, warn, error};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectHeader`
[INFO] [stdout]   --> src/models/mqtt_types.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::models::mqtt_headers::{ConnAckHeader, ConnectHeader, MqttHeaders};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadFactory`
[INFO] [stdout]   --> src/models/mqtt_types.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::models::mqtt_payloads::{Payload, PayloadFactory};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/models/mqtt_headers.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/packets/connect.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectPayload`
[INFO] [stdout]  --> src/models/packets/connect.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::mqtt_payloads::{Payload, ConnectPayload};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::mqtt_types::MqttPacketType`
[INFO] [stdout]  --> src/models/packets/connect.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::models::mqtt_types::MqttPacketType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/models/broker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:39
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:39
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:22
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:38
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:38
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:41
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:22
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:38
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:27
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:43
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:40
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:24
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:42
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientState` is more private than the item `Broker::get_client`
[INFO] [stdout]   --> src/models/broker.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Broker::get_client` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ClientState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/models/broker.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `remaining_length_bytes` is never read
[INFO] [stdout]   --> src/models/mqtt_headers.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct MqttHeaders {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub remaining_length_bytes: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttHeaders` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl MqttHeaders {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn incomming_byte_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header_type` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait VariableHeader {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] 110 |     fn header_type(&self) -> MqttPacketType;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `size` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ConnectHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn size() -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SESSION_PRESENT_MASK`, `SESSION_PRESENT_INVALID_MASK`, `from_bytes`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl ConnAckHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 239 |     const SESSION_PRESENT_MASK: u8 = 0x01;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 240 |     const SESSION_PRESENT_INVALID_MASK: u8 = 0xFE;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn from_bytes(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn incomming_byte_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `will_topic`, `will_message`, `username`, and `password` are never read
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct ConnectPayload {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 6  |     pub client_id: Option<String>,
[INFO] [stdout] 7  |     pub will_topic: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 8  |     pub will_message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 9  |     pub username: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub password: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `payload` is never read
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PublishPayload {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub payload: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PublishPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `subscription_topic` and `qos` are never read
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SubscribePayload {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 20 |     pub subscription_topic: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub qos: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SubscribePayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Publish(PublishPayload),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Payload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Publish(()),
[INFO] [stdout]    |             ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Subscribe(SubscribePayload),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Payload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Subscribe(()),
[INFO] [stdout]    |               ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fixed_header` is never read
[INFO] [stdout]  --> src/models/packets/connect.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Connect {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 9 |     pub fixed_header: MqttHeaders,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `payload` is never read
[INFO] [stdout]  --> src/models/packets/connack.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnAck {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub payload: Payload,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/models/packets/connack.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ConnAck {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Disconnected` and `AwaitingReconnect` are never constructed
[INFO] [stdout]   --> src/models/broker.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | enum ConnectionStatus {
[INFO] [stdout]    |      ---------------- variants in this enum
[INFO] [stdout] 8  |     Connected,
[INFO] [stdout] 9  |     Disconnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 10 |     AwaitingReconnect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connected_status`, `subscriptions`, `last_seen`, and `keep_alive` are never read
[INFO] [stdout]   --> src/models/broker.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 15 |     client_id: String,
[INFO] [stdout] 16 |     connected_status: ConnectionStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     subscriptions: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     last_seen: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     keep_alive: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_last_seen` and `is_alive` are never used
[INFO] [stdout]   --> src/models/broker.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ClientState {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn update_last_seen(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_client_activity` and `get_client` are never used
[INFO] [stdout]   --> src/models/broker.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Broker {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn update_client_activity(&mut self, client_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.07s
[INFO] running `Command { std: "docker" "inspect" "aa34de254cdcf263e4e96972ce21341b299f34d76603c5fffa143e17c8454cdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa34de254cdcf263e4e96972ce21341b299f34d76603c5fffa143e17c8454cdd", kill_on_drop: false }`
[INFO] [stdout] aa34de254cdcf263e4e96972ce21341b299f34d76603c5fffa143e17c8454cdd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 368a784b292e1f8651e6a1e7668e3f470834f47a022de0d063c9f94a6d9c7e19
[INFO] running `Command { std: "docker" "start" "-a" "368a784b292e1f8651e6a1e7668e3f470834f47a022de0d063c9f94a6d9c7e19", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/models/mqtt_types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::SplitSink`
[INFO] [stdout]  --> src/models/mqtt_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::stream::SplitSink;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/models/mqtt_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message`
[INFO] [stdout]  --> src/models/mqtt_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_tungstenite::tungstenite::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/models/mqtt_types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{info, warn, error};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectHeader`
[INFO] [stdout]   --> src/models/mqtt_types.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::models::mqtt_headers::{ConnAckHeader, ConnectHeader, MqttHeaders};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadFactory`
[INFO] [stdout]   --> src/models/mqtt_types.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::models::mqtt_payloads::{Payload, PayloadFactory};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/models/mqtt_headers.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/packets/connect.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectPayload`
[INFO] [stdout]  --> src/models/packets/connect.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::mqtt_payloads::{Payload, ConnectPayload};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::mqtt_types::MqttPacketType`
[INFO] [stdout]  --> src/models/packets/connect.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::models::mqtt_types::MqttPacketType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/models/broker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:39
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:39
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:22
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:38
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:38
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:41
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:22
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:38
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:27
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:43
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:40
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:24
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:42
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientState` is more private than the item `Broker::get_client`
[INFO] [stdout]   --> src/models/broker.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Broker::get_client` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ClientState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/models/broker.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/models/mqtt_types.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MqttPacketType {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     PubAck = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 23 |     PubRec = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     PubRel = 6,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     PubComp = 7,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 26 |     Subscribe = 8,
[INFO] [stdout] 27 |     SubAck = 9,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     Unsubscribe = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 29 |     UnsubAck = 11,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     PingReq = 12,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     PingResp = 13,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     Disconnect = 14,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttPacketType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_u8` is never used
[INFO] [stdout]   --> src/models/mqtt_types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl MqttPacketType {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn from_u8(value: u8) -> Result<Self, &'static str> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttPacketDispatcher` is never constructed
[INFO] [stdout]   --> src/models/mqtt_types.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct MqttPacketDispatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttPacketDispatcher` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/models/mqtt_types.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout] 87  | impl MqttPacketDispatcher {
[INFO] [stdout]     | ------------------------- associated functions in this implementation
[INFO] [stdout] 88  |     pub fn new() -> Result<Self, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn handle_connect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttHeaders` is never constructed
[INFO] [stdout]  --> src/models/mqtt_headers.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct MqttHeaders {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MqttHeaders` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, `to_bytes`, `size`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl MqttHeaders {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 17  |
[INFO] [stdout] 18  |     pub fn new(packet_type: MqttPacketType, flags: u8, remaining_length: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     pub fn parse(buffer: &[u8]) -> Result<Self, &'static str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn incomming_byte_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header_type` and `as_any` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait VariableHeader {
[INFO] [stdout]     |           -------------- methods in this trait
[INFO] [stdout] 110 |     fn header_type(&self) -> MqttPacketType;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 111 |     fn as_any(&self) -> &dyn Any;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PROTOCOL_NAME_LENGTH`, `increment_index`, `new`, `from_bytes`, and `size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ConnectHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 182 |     const PROTOCOL_NAME_LENGTH: usize = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn increment_index(idx: &mut usize, value: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn new(protocol_name: String, protocol_level: u8, connect_flags: u8, keep_alive: u16) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn from_bytes(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn size() -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SESSION_PRESENT_MASK`, `SESSION_PRESENT_INVALID_MASK`, `new`, `from_bytes`, `to_bytes`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl ConnAckHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 239 |     const SESSION_PRESENT_MASK: u8 = 0x01;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 240 |     const SESSION_PRESENT_INVALID_MASK: u8 = 0xFE;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 241 |
[INFO] [stdout] 242 |     pub fn new(session_present: bool, return_code: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn from_bytes(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn incomming_byte_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectPayload` is never constructed
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnectPayload {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ConnectPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PublishPayload` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PublishPayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PublishPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SubscribePayload` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SubscribePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SubscribePayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Payload` is never used
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Payload {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Payload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PayloadFactory` is never constructed
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PayloadFactory;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/models/mqtt_payloads.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl PayloadFactory {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 38 |     const WILL_FLAG: u8 = 0b00000100;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 39 |     const USER_NAME_FLAG: u8 = 0b10000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     const PASSWORD_FLAG: u8 = 0b01000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 41 |     const QOS_MASK_VALID: u8 = 0b00000011;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     const QOS_MASK_INVALID: u8 = 0b11111100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |
[INFO] [stdout] 44 |     fn extract_utf8_string(payload_data: &[u8], start_idx: &mut usize) -> (usize, String) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn parse_payload(variable_header: &dyn VariableHeader, payload_data: Vec<u8>) -> Payload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect` is never constructed
[INFO] [stdout]  --> src/models/packets/connect.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Connect {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `MINIMUM_REMAINING_LENGTH`, `new`, and `from_bytes` are never used
[INFO] [stdout]   --> src/models/packets/connect.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Connect {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 15 |     const MINIMUM_REMAINING_LENGTH: u32 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |
[INFO] [stdout] 17 |     pub fn new(fixed_header: MqttHeaders, variable_header: ConnectHeader, payload: Payload) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnAck` is never constructed
[INFO] [stdout]  --> src/models/packets/connack.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnAck {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_bytes`, and `to_bytes` are never used
[INFO] [stdout]   --> src/models/packets/connack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ConnAck {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(fixed_header: MqttHeaders, variable_header: ConnAckHeader, payload: Payload) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionStatus` is never used
[INFO] [stdout]  --> src/models/broker.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum ConnectionStatus {
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientState` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_last_seen`, and `is_alive` are never used
[INFO] [stdout]   --> src/models/broker.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ClientState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(client_id: &str, keep_alive: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn update_last_seen(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling mqtt-broker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Broker` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Broker {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Broker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_client`, `remove_client`, `update_client_activity`, `get_client`, and `is_client_connected` are never used
[INFO] [stdout]   --> src/models/broker.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Broker {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 49 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn add_client(&mut self, client_id: &str, keep_alive: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn remove_client(&mut self, client_id: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn update_client_activity(&mut self, client_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn is_client_connected(&self, client_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/models/mqtt_types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::SplitSink`
[INFO] [stdout]  --> src/models/mqtt_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::stream::SplitSink;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/models/mqtt_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message`
[INFO] [stdout]  --> src/models/mqtt_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_tungstenite::tungstenite::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/models/mqtt_types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{info, warn, error};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectHeader`
[INFO] [stdout]   --> src/models/mqtt_types.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::models::mqtt_headers::{ConnAckHeader, ConnectHeader, MqttHeaders};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadFactory`
[INFO] [stdout]   --> src/models/mqtt_types.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::models::mqtt_payloads::{Payload, PayloadFactory};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/models/mqtt_headers.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/packets/connect.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectPayload`
[INFO] [stdout]  --> src/models/packets/connect.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::mqtt_payloads::{Payload, ConnectPayload};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/models/broker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/models/mqtt_types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::SplitSink`
[INFO] [stdout]  --> src/models/mqtt_types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::stream::SplitSink;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/models/mqtt_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message`
[INFO] [stdout]  --> src/models/mqtt_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_tungstenite::tungstenite::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_tungstenite::WebSocketStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_tungstenite::WebSocketStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/models/mqtt_types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/models/mqtt_types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{info, warn, error};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectHeader`
[INFO] [stdout]   --> src/models/mqtt_types.rs:12:50
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::models::mqtt_headers::{ConnAckHeader, ConnectHeader, MqttHeaders};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadFactory`
[INFO] [stdout]   --> src/models/mqtt_types.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::models::mqtt_payloads::{Payload, PayloadFactory};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/models/mqtt_headers.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/mqtt_payloads.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/models/packets/connect.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectPayload`
[INFO] [stdout]  --> src/models/packets/connect.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::mqtt_payloads::{Payload, ConnectPayload};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/models/broker.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:39
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:39
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:22
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:38
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:38
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:41
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:22
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:38
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:27
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:43
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:40
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:24
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:42
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientState` is more private than the item `Broker::get_client`
[INFO] [stdout]   --> src/models/broker.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Broker::get_client` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ClientState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/models/broker.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttPacketDispatcher` is never constructed
[INFO] [stdout]   --> src/models/mqtt_types.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct MqttPacketDispatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttPacketDispatcher` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/models/mqtt_types.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout] 87  | impl MqttPacketDispatcher {
[INFO] [stdout]     | ------------------------- associated functions in this implementation
[INFO] [stdout] 88  |     pub fn new() -> Result<Self, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn handle_connect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `remaining_length_bytes` is never read
[INFO] [stdout]   --> src/models/mqtt_headers.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct MqttHeaders {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub remaining_length_bytes: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttHeaders` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `size`, and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl MqttHeaders {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 17  |
[INFO] [stdout] 18  |     pub fn new(packet_type: MqttPacketType, flags: u8, remaining_length: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn incomming_byte_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header_type` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait VariableHeader {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] 110 |     fn header_type(&self) -> MqttPacketType;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `size` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ConnectHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn size() -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_bytes` and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:259:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl ConnAckHeader {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn incomming_byte_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnAck` is never constructed
[INFO] [stdout]  --> src/models/packets/connack.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnAck {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_bytes`, and `to_bytes` are never used
[INFO] [stdout]   --> src/models/packets/connack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ConnAck {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(fixed_header: MqttHeaders, variable_header: ConnAckHeader, payload: Payload) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionStatus` is never used
[INFO] [stdout]  --> src/models/broker.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum ConnectionStatus {
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientState` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_last_seen`, and `is_alive` are never used
[INFO] [stdout]   --> src/models/broker.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ClientState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(client_id: &str, keep_alive: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn update_last_seen(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Broker` is never constructed
[INFO] [stdout]   --> src/models/broker.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Broker {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Broker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_client`, `remove_client`, `update_client_activity`, `get_client`, and `is_client_connected` are never used
[INFO] [stdout]   --> src/models/broker.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Broker {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 49 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn add_client(&mut self, client_id: &str, keep_alive: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn remove_client(&mut self, client_id: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn update_client_activity(&mut self, client_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn is_client_connected(&self, client_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:143:39
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn handle_connack(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:150:39
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn handle_publish(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:156:38
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn handle_puback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:22
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:162:38
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn handle_pubrec(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:168:38
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn handle_pubrel(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn handle_pubcomp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:25
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:180:41
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn handle_subscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:22
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:186:38
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn handle_suback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:27
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:192:43
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn handle_unsubscribe(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:198:40
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn handle_unsuback(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:24
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:204:40
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn handle_ping_req(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn handle_ping_resp(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `broker`
[INFO] [stdout]    --> src/models/mqtt_types.rs:216:42
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn handle_disconnect(data: &Vec<u8>, broker: &mut Broker) -> Vec<u8> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ClientState` is more private than the item `Broker::get_client`
[INFO] [stdout]   --> src/models/broker.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Broker::get_client` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ClientState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/models/broker.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `remaining_length_bytes` is never read
[INFO] [stdout]   --> src/models/mqtt_headers.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct MqttHeaders {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub remaining_length_bytes: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MqttHeaders` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `incomming_byte_size` are never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl MqttHeaders {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn incomming_byte_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header_type` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait VariableHeader {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] 110 |     fn header_type(&self) -> MqttPacketType;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `size` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl ConnectHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn size() -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `incomming_byte_size` is never used
[INFO] [stdout]    --> src/models/mqtt_headers.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl ConnAckHeader {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn incomming_byte_size() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `payload` is never read
[INFO] [stdout]  --> src/models/packets/connack.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnAck {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub payload: Payload,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/models/packets/connack.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ConnAck {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn from_bytes(data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Disconnected` and `AwaitingReconnect` are never constructed
[INFO] [stdout]   --> src/models/broker.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | enum ConnectionStatus {
[INFO] [stdout]    |      ---------------- variants in this enum
[INFO] [stdout] 8  |     Connected,
[INFO] [stdout] 9  |     Disconnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 10 |     AwaitingReconnect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connected_status`, `subscriptions`, `last_seen`, and `keep_alive` are never read
[INFO] [stdout]   --> src/models/broker.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ClientState {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 15 |     client_id: String,
[INFO] [stdout] 16 |     connected_status: ConnectionStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     subscriptions: HashSet<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     last_seen: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     keep_alive: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_last_seen` and `is_alive` are never used
[INFO] [stdout]   --> src/models/broker.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ClientState {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn update_last_seen(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_client_activity` and `get_client` are never used
[INFO] [stdout]   --> src/models/broker.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Broker {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn update_client_activity(&mut self, client_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_client(&self, client_id: &str) -> Option<&ClientState> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.23s
[INFO] running `Command { std: "docker" "inspect" "368a784b292e1f8651e6a1e7668e3f470834f47a022de0d063c9f94a6d9c7e19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "368a784b292e1f8651e6a1e7668e3f470834f47a022de0d063c9f94a6d9c7e19", kill_on_drop: false }`
[INFO] [stdout] 368a784b292e1f8651e6a1e7668e3f470834f47a022de0d063c9f94a6d9c7e19
