[INFO] cloning repository https://github.com/mesameen/iot-hub-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mesameen/iot-hub-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmesameen%2Fiot-hub-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmesameen%2Fiot-hub-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 119032da97c39d09aff67d382dbee4b24f4c1ace [INFO] checking mesameen/iot-hub-rust against master#61cc47e367d7be91e13bcd01e4e96e0e233d4f6d for 2025-12-16-next-solver-global [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmesameen%2Fiot-hub-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/mesameen/iot-hub-rust [INFO] finished tweaking git repo https://github.com/mesameen/iot-hub-rust [INFO] tweaked toml for git repo https://github.com/mesameen/iot-hub-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mesameen/iot-hub-rust on toolchain 61cc47e367d7be91e13bcd01e4e96e0e233d4f6d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mesameen/iot-hub-rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fred-macros v0.1.0 [INFO] [stderr] Downloaded tryhard v0.5.2 [INFO] [stderr] Downloaded cookie-factory v0.3.2 [INFO] [stderr] Downloaded crc16 v0.4.0 [INFO] [stderr] Downloaded proc-macro2 v1.0.102 [INFO] [stderr] Downloaded serde_nanos v0.1.4 [INFO] [stderr] Downloaded nuid v0.5.0 [INFO] [stderr] Downloaded nkeys v0.4.5 [INFO] [stderr] Downloaded redis-protocol v6.0.0 [INFO] [stderr] Downloaded signatory v0.27.1 [INFO] [stderr] Downloaded tokio-websockets v0.10.1 [INFO] [stderr] Downloaded fred v10.1.0 [INFO] [stderr] Downloaded async-nats v0.43.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 922a7fa7a0b7d8d3205d92b7d02136481cce13c30c7c6aef9662f4ebc383af1f [INFO] running `Command { std: "docker" "start" "-a" "922a7fa7a0b7d8d3205d92b7d02136481cce13c30c7c6aef9662f4ebc383af1f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "922a7fa7a0b7d8d3205d92b7d02136481cce13c30c7c6aef9662f4ebc383af1f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "922a7fa7a0b7d8d3205d92b7d02136481cce13c30c7c6aef9662f4ebc383af1f", kill_on_drop: false }` [INFO] [stdout] 922a7fa7a0b7d8d3205d92b7d02136481cce13c30c7c6aef9662f4ebc383af1f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6a3a297f59c3f814e6c12c6246162c1bd13a3655337f1e218a7324b0e82b09e6 [INFO] running `Command { std: "docker" "start" "-a" "6a3a297f59c3f814e6c12c6246162c1bd13a3655337f1e218a7324b0e82b09e6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.102 [INFO] [stderr] Compiling unicode-ident v1.0.20 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking rustls-pki-types v1.13.0 [INFO] [stderr] Checking base64ct v1.8.0 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling pulldown-cmark v0.13.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Compiling pest v2.8.3 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling petgraph v0.7.1 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling pest_meta v2.8.3 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Compiling pulldown-cmark-to-cmark v21.0.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking ahash v0.7.8 [INFO] [stderr] Compiling multimap v0.10.1 [INFO] [stderr] Compiling crc16 v0.4.0 [INFO] [stderr] Compiling rustls v0.23.35 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking ed25519 v2.2.3 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Checking rustls-webpki v0.103.8 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Checking deranged v0.5.5 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Checking ordered-multimap v0.4.3 [INFO] [stderr] Checking signatory v0.27.1 [INFO] [stderr] Checking serde_json v1.0.145 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking cookie-factory v0.3.2 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking winnow v0.5.40 [INFO] [stderr] Checking rustls-native-certs v0.7.3 [INFO] [stderr] Checking rust-ini v0.18.0 [INFO] [stderr] Checking float-cmp v0.10.0 [INFO] [stderr] Checking nuid v0.5.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling pest_generator v2.8.3 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking semver v1.0.27 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Compiling tonic-build v0.14.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling prost-derive v0.14.1 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Compiling prost v0.14.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking ed25519-dalek v2.2.0 [INFO] [stderr] Compiling pest_derive v2.8.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking nkeys v0.4.5 [INFO] [stderr] Compiling prost-types v0.14.1 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Compiling fred-macros v0.1.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking tracing-subscriber v0.3.20 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Compiling prost-build v0.14.1 [INFO] [stderr] Checking icu_properties v2.1.1 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking time v0.3.44 [INFO] [stderr] Checking serde_nanos v0.1.4 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking ron v0.7.1 [INFO] [stderr] Checking toml_edit v0.19.15 [INFO] [stderr] Compiling tonic-prost-build v0.14.2 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking bytes-utils v0.1.4 [INFO] [stderr] Checking redis-protocol v6.0.0 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Compiling iot-hub v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking config v0.13.4 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking axum-core v0.5.5 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking toml v0.7.8 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking tryhard v0.5.2 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking h2 v0.4.12 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking fred v10.1.0 [INFO] [stderr] Checking async-nats v0.43.1 [INFO] [stderr] Checking axum v0.8.6 [INFO] [stderr] Checking hyper v1.7.0 [INFO] [stderr] Checking hyper-util v0.1.17 [INFO] [stderr] Checking hyper-timeout v0.5.2 [INFO] [stderr] Checking tonic v0.14.2 [INFO] [stderr] Checking tonic-prost v0.14.2 [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut stream = match TcpStream::connect("localhost:8090").await { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/test.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | let (mut reader, mut writer) = stream.into_split(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> tests/test.rs:143:18 [INFO] [stdout] | [INFO] [stdout] 143 | Some(cmd) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_jimi_msgs` is never used [INFO] [stdout] --> tests/test.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn get_jimi_msgs() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_teltonika_msgs` is never used [INFO] [stdout] --> tests/test.rs:96:4 [INFO] [stdout] | [INFO] [stdout] 96 | fn get_teltonika_msgs() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_ruptela_msgs` is never used [INFO] [stdout] --> tests/test.rs:127:4 [INFO] [stdout] | [INFO] [stdout] 127 | fn get_ruptela_msgs() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bytes_utils::Str` and `cmd` [INFO] [stdout] --> src/cache/redis.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | use fred::{bytes_utils::Str, cmd, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fred::bytes_utils::Str` [INFO] [stdout] --> src/cache/repo.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use fred::bytes_utils::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/iothubservice/local.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StreamCommandsResponse` [INFO] [stdout] --> src/iothubservice/local.rs:9:46 [INFO] [stdout] | [INFO] [stdout] 9 | command::v1::{StreamCommandsRequest, StreamCommandsResponse, UpdateCommandRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/iothubservice/persist.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{error::Error, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DeviceDataResponse`, `RegisteredDevice`, `StreamCommandsResponse`, and `util` [INFO] [stdout] --> src/iothubservice/persist.rs:11:46 [INFO] [stdout] | [INFO] [stdout] 11 | command::v1::{StreamCommandsRequest, StreamCommandsResponse, UpdateCommandRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | common::v1::{Command, RegisteredDevice}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | data::v1::{DeviceDataRequest, DeviceDataResponse}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | util, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IotHubServiceConnPool` [INFO] [stdout] --> src/iothubservice/service.rs:9:40 [INFO] [stdout] | [INFO] [stdout] 9 | iothubservice::{IotHubServiceConn, IotHubServiceConnPool, IotHubServiceRepo}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fred::bytes_utils::Str` [INFO] [stdout] --> src/model/howen.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use fred::bytes_utils::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> src/parsers/howen.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CRC_16_MODBUS` [INFO] [stdout] --> src/parsers/teltonika.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use crc::{Algorithm, CRC_16_MODBUS, Crc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/parsers/teltonika.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `util` [INFO] [stdout] --> src/parsers/teltonika.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | util, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/pubsub/nats.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use async_nats::jetstream::{self, Context}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `constants` and `model` [INFO] [stdout] --> src/pubsub/repo.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | config, constants, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | iot::{common::v1::Command, data::v1::DeviceDataRequest}, [INFO] [stdout] 10 | model, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nats::*` [INFO] [stdout] --> src/pubsub/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use nats::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DateTime` [INFO] [stdout] --> src/service/client.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::{DateTime, TimeZone, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bytes_utils::Str` and `cmd` [INFO] [stdout] --> src/cache/redis.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | use fred::{bytes_utils::Str, cmd, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fred::bytes_utils::Str` [INFO] [stdout] --> src/cache/repo.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use fred::bytes_utils::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/iothubservice/local.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StreamCommandsResponse` [INFO] [stdout] --> src/iothubservice/local.rs:9:46 [INFO] [stdout] | [INFO] [stdout] 9 | command::v1::{StreamCommandsRequest, StreamCommandsResponse, UpdateCommandRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::Error` [INFO] [stdout] --> src/iothubservice/persist.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{error::Error, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DeviceDataResponse`, `RegisteredDevice`, `StreamCommandsResponse`, and `util` [INFO] [stdout] --> src/iothubservice/persist.rs:11:46 [INFO] [stdout] | [INFO] [stdout] 11 | command::v1::{StreamCommandsRequest, StreamCommandsResponse, UpdateCommandRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | common::v1::{Command, RegisteredDevice}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | data::v1::{DeviceDataRequest, DeviceDataResponse}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | util, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IotHubServiceConnPool` [INFO] [stdout] --> src/iothubservice/service.rs:9:40 [INFO] [stdout] | [INFO] [stdout] 9 | iothubservice::{IotHubServiceConn, IotHubServiceConnPool, IotHubServiceRepo}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fred::bytes_utils::Str` [INFO] [stdout] --> src/model/howen.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use fred::bytes_utils::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> src/parsers/howen.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CRC_16_MODBUS` [INFO] [stdout] --> src/parsers/teltonika.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use crc::{Algorithm, CRC_16_MODBUS, Crc}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/parsers/teltonika.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `util` [INFO] [stdout] --> src/parsers/teltonika.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | util, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `jimiiot::*` [INFO] [stdout] --> src/parsers/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use jimiiot::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/pubsub/nats.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use async_nats::jetstream::{self, Context}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `constants` and `model` [INFO] [stdout] --> src/pubsub/repo.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | config, constants, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | iot::{common::v1::Command, data::v1::DeviceDataRequest}, [INFO] [stdout] 10 | model, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nats::*` [INFO] [stdout] --> src/pubsub/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use nats::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DateTime` [INFO] [stdout] --> src/service/client.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::{DateTime, TimeZone, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::traits::Subscriber` [INFO] [stdout] --> src/pubsub/nats.rs:8:42 [INFO] [stdout] | [INFO] [stdout] 8 | use async_nats::{Client, ConnectOptions, client::traits::Subscriber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::traits::Subscriber` [INFO] [stdout] --> src/pubsub/nats.rs:8:42 [INFO] [stdout] | [INFO] [stdout] 8 | use async_nats::{Client, ConnectOptions, client::traits::Subscriber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/redis.rs:112:43 [INFO] [stdout] | [INFO] [stdout] 112 | async fn remove_device_command(&self, imei: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:65:41 [INFO] [stdout] | [INFO] [stdout] 65 | async fn get_device_commands(&self, imei: String) -> Result> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:68:43 [INFO] [stdout] | [INFO] [stdout] 68 | async fn remove_device_command(&self, imei: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:71:49 [INFO] [stdout] | [INFO] [stdout] 71 | async fn update_device_listener_info(&self, imei: String, listener_name: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `listener_name` [INFO] [stdout] --> src/cache/repo.rs:71:63 [INFO] [stdout] | [INFO] [stdout] 71 | async fn update_device_listener_info(&self, imei: String, listener_name: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_listener_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/redis.rs:112:43 [INFO] [stdout] | [INFO] [stdout] 112 | async fn remove_device_command(&self, imei: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/local.rs:43:37 [INFO] [stdout] | [INFO] [stdout] 43 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/iothubservice/local.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let (tx, rx) = mpsc::channel(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/local.rs:47:36 [INFO] [stdout] | [INFO] [stdout] 47 | async fn update_command(&self, req: UpdateCommandRequest) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `device` [INFO] [stdout] --> src/iothubservice/persist.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | let Some(device) = req.clone().registered_device else { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/persist.rs:118:37 [INFO] [stdout] | [INFO] [stdout] 118 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/iothubservice/persist.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | let (tx, rx) = mpsc::channel(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:65:41 [INFO] [stdout] | [INFO] [stdout] 65 | async fn get_device_commands(&self, imei: String) -> Result> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:68:43 [INFO] [stdout] | [INFO] [stdout] 68 | async fn remove_device_command(&self, imei: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imei` [INFO] [stdout] --> src/cache/repo.rs:71:49 [INFO] [stdout] | [INFO] [stdout] 71 | async fn update_device_listener_info(&self, imei: String, listener_name: String) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `listener_name` [INFO] [stdout] --> src/cache/repo.rs:71:63 [INFO] [stdout] | [INFO] [stdout] 71 | async fn update_device_listener_info(&self, imei: String, listener_name: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_listener_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/local.rs:43:37 [INFO] [stdout] | [INFO] [stdout] 43 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/iothubservice/local.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let (tx, rx) = mpsc::channel(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/local.rs:47:36 [INFO] [stdout] | [INFO] [stdout] 47 | async fn update_command(&self, req: UpdateCommandRequest) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `device` [INFO] [stdout] --> src/iothubservice/persist.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | let Some(device) = req.clone().registered_device else { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/iothubservice/persist.rs:118:37 [INFO] [stdout] | [INFO] [stdout] 118 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/iothubservice/persist.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | let (tx, rx) = mpsc::channel(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/galileosky.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | fn get_data_type(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/galileosky.rs:85:36 [INFO] [stdout] | [INFO] [stdout] 85 | fn get_command_response(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/galileosky.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | ... let data = "01910003383638323034303035363437383338043200E000000000E177446576353020536F66743D323233205061636B3D31313620546D447... [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/howen.rs:265:25 [INFO] [stdout] | [INFO] [stdout] 265 | fn check_crc(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> src/parsers/howen.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | fn get_command(&self, command: Command) -> Result> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subscription_res` [INFO] [stdout] --> src/parsers/howen.rs:311:13 [INFO] [stdout] | [INFO] [stdout] 311 | ... let subscription_res = "48014040380000007b226374223a223635353335222c227373223a227374617475732d32383038313130322d3030303030314... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscription_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:54:24 [INFO] [stdout] | [INFO] [stdout] 54 | fn get_imei(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | fn check_crc(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input_data` [INFO] [stdout] --> src/parsers/jimiiot.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | input_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> src/parsers/jimiiot.rs:97:27 [INFO] [stdout] | [INFO] [stdout] 97 | fn get_command(&self, command: Command) -> Result> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:100:36 [INFO] [stdout] | [INFO] [stdout] 100 | fn get_command_response(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other_data` [INFO] [stdout] --> src/parsers/ruptela.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | let other_data = [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_other_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/galileosky.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | fn get_data_type(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/galileosky.rs:85:36 [INFO] [stdout] | [INFO] [stdout] 85 | fn get_command_response(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/howen.rs:265:25 [INFO] [stdout] | [INFO] [stdout] 265 | fn check_crc(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> src/parsers/howen.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | fn get_command(&self, command: Command) -> Result> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/service/server.rs:621:33 [INFO] [stdout] | [INFO] [stdout] 621 | if let Some(e) = event { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:54:24 [INFO] [stdout] | [INFO] [stdout] 54 | fn get_imei(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | fn check_crc(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input_data` [INFO] [stdout] --> src/parsers/jimiiot.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | input_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> src/parsers/jimiiot.rs:97:27 [INFO] [stdout] | [INFO] [stdout] 97 | fn get_command(&self, command: Command) -> Result> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/parsers/jimiiot.rs:100:36 [INFO] [stdout] | [INFO] [stdout] 100 | fn get_command_response(&self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/service/server.rs:621:33 [INFO] [stdout] | [INFO] [stdout] 621 | if let Some(e) = event { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/cache/repo.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait CacheRepo: Send + Sync + Debug { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 20 | async fn close(&mut self) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `read_buffer_size` is never read [INFO] [stdout] --> src/config/config.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct ServerConfig { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 18 | pub address: String, [INFO] [stdout] 19 | pub read_buffer_size: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerConfig` 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: field `channel_capacity` is never read [INFO] [stdout] --> src/config/config.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct EventsConfig { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 26 | pub channel_capacity: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventsConfig` 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 `no_of_connections` is never read [INFO] [stdout] --> src/config/config.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct IotHubServiceConfig { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 36 | pub address: String, [INFO] [stdout] 37 | pub no_of_connections: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IotHubServiceConfig` 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 `stream_name` is never read [INFO] [stdout] --> src/config/config.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct NatsConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 45 | pub stream_name: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NatsConfig` 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 `events` is never read [INFO] [stdout] --> src/config/config.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct AppConfig { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | pub events: EventsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSER_TYPE_TELTONIKA` is never used [INFO] [stdout] --> src/constants/constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const PARSER_TYPE_TELTONIKA: &str = "teltonika"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IMEI_PLACEHOLDER` is never used [INFO] [stdout] --> src/constants/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const IMEI_PLACEHOLDER: &str = "{imei}"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NATS` is never used [INFO] [stdout] --> src/constants/constants.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const NATS: &str = "nats"; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `addr` is never read [INFO] [stdout] --> src/iothubservice/conn.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct IotHubServiceConn { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 25 | channel: Channel, [INFO] [stdout] 26 | addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IotHubServiceConn` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `reconnect`, `check_health`, and `cleanup` are never used [INFO] [stdout] --> src/iothubservice/conn.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 29 | impl IotHubServiceConn { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | async fn reconnect(&mut self) -> Result<(), tonic::transport::Error> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | async fn check_health(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn cleanup(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IotHubServiceConnPool` is never constructed [INFO] [stdout] --> src/iothubservice/conn.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct IotHubServiceConnPool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/iothubservice/conn.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 83 | impl IotHubServiceConnPool { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 84 | // initiates the connection pool [INFO] [stdout] 85 | pub async fn new(addr: &str, size: usize) -> Result, tonic::transport::Error> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | async fn get_channel(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub async fn get_auth_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn get_data_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub async fn get_commands_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub async fn spawn_health_checker(self: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | async fn check_and_reconnect(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub async fn cleanup(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stream_commands` and `cleanup` are never used [INFO] [stdout] --> src/iothubservice/repo.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 20 | pub trait IotHubServiceRepo: Send + Sync { [INFO] [stdout] | ----------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 23 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | async fn update_command(&self, req: UpdateCommandRequest) -> Result<()>; [INFO] [stdout] 25 | async fn cleanup(&self) -> Result<()>; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `login_ack_required`, `location_ack_required`, `heartbeat_ack_required`, and `command_response_ack_required` are never read [INFO] [stdout] --> src/model/common.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct ParserInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 78 | pub login_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | pub location_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 80 | pub heartbeat_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 81 | pub command_response_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParserInfo` 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 fields are never read [INFO] [stdout] --> src/model/conn.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ClientInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 17 | pub imei: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | pub connected_at: u64, [INFO] [stdout] 19 | pub disconnected_at: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | pub duration: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 21 | pub addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | pub sent: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 23 | pub recv: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | pub reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | pub listener: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientInfo` 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: fields `imei`, `addr`, `action`, `time`, and `client_info` are never read [INFO] [stdout] --> src/model/conn.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ConnectionEvent { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 30 | pub imei: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | pub addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | pub action: ConnectionAction, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 33 | pub time: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 34 | pub client_info: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionEvent` 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: enum `EventType` is never used [INFO] [stdout] --> src/model/howen.rs:86:10 [INFO] [stdout] | [INFO] [stdout] 86 | pub enum EventType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AlarmType` is never used [INFO] [stdout] --> src/model/howen.rs:170:10 [INFO] [stdout] | [INFO] [stdout] 170 | pub enum AlarmType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TELTONIKA_LOCATION_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/teltonika.rs:46:7 [INFO] [stdout] | [INFO] [stdout] 46 | const TELTONIKA_LOCATION_IDENTIFIER: &[u8] = &[0x00, 0x00, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/pubsub/repo.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait PubSubRepo: Send + Sync + Debug { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 19 | async fn close(&mut self) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `connected_at` is never read [INFO] [stdout] --> src/service/client.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct IotClient { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub connected_at: i64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_commands1` is never used [INFO] [stdout] --> src/service/client.rs:107:18 [INFO] [stdout] | [INFO] [stdout] 55 | impl IotClient { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub async fn handle_commands1(&self, mut cmd_rec: Receiver) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `iot_hub_service` is never read [INFO] [stdout] --> src/service/server.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct IotServer { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 38 | iot_hub_service: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/cache/repo.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait CacheRepo: Send + Sync + Debug { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 20 | async fn close(&mut self) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `read_buffer_size` is never read [INFO] [stdout] --> src/config/config.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct ServerConfig { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 18 | pub address: String, [INFO] [stdout] 19 | pub read_buffer_size: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerConfig` 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: field `channel_capacity` is never read [INFO] [stdout] --> src/config/config.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct EventsConfig { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 26 | pub channel_capacity: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventsConfig` 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 `no_of_connections` is never read [INFO] [stdout] --> src/config/config.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct IotHubServiceConfig { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 36 | pub address: String, [INFO] [stdout] 37 | pub no_of_connections: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IotHubServiceConfig` 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 `stream_name` is never read [INFO] [stdout] --> src/config/config.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct NatsConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 45 | pub stream_name: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NatsConfig` 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 `events` is never read [INFO] [stdout] --> src/config/config.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct AppConfig { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | pub events: EventsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSER_TYPE_TELTONIKA` is never used [INFO] [stdout] --> src/constants/constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const PARSER_TYPE_TELTONIKA: &str = "teltonika"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IMEI_PLACEHOLDER` is never used [INFO] [stdout] --> src/constants/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const IMEI_PLACEHOLDER: &str = "{imei}"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NATS` is never used [INFO] [stdout] --> src/constants/constants.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const NATS: &str = "nats"; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `addr` is never read [INFO] [stdout] --> src/iothubservice/conn.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct IotHubServiceConn { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 25 | channel: Channel, [INFO] [stdout] 26 | addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IotHubServiceConn` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `reconnect`, `check_health`, and `cleanup` are never used [INFO] [stdout] --> src/iothubservice/conn.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 29 | impl IotHubServiceConn { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | async fn reconnect(&mut self) -> Result<(), tonic::transport::Error> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | async fn check_health(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn cleanup(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IotHubServiceConnPool` is never constructed [INFO] [stdout] --> src/iothubservice/conn.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct IotHubServiceConnPool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/iothubservice/conn.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 83 | impl IotHubServiceConnPool { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 84 | // initiates the connection pool [INFO] [stdout] 85 | pub async fn new(addr: &str, size: usize) -> Result, tonic::transport::Error> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | async fn get_channel(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub async fn get_auth_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn get_data_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub async fn get_commands_client(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub async fn spawn_health_checker(self: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | async fn check_and_reconnect(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub async fn cleanup(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stream_commands` and `cleanup` are never used [INFO] [stdout] --> src/iothubservice/repo.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 20 | pub trait IotHubServiceRepo: Send + Sync { [INFO] [stdout] | ----------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 23 | async fn stream_commands(&self, req: StreamCommandsRequest) -> Result>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 24 | async fn update_command(&self, req: UpdateCommandRequest) -> Result<()>; [INFO] [stdout] 25 | async fn cleanup(&self) -> Result<()>; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `login_ack_required`, `location_ack_required`, `heartbeat_ack_required`, and `command_response_ack_required` are never read [INFO] [stdout] --> src/model/common.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct ParserInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 78 | pub login_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | pub location_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 80 | pub heartbeat_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 81 | pub command_response_ack_required: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParserInfo` 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 fields are never read [INFO] [stdout] --> src/model/conn.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ClientInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 17 | pub imei: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | pub connected_at: u64, [INFO] [stdout] 19 | pub disconnected_at: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | pub duration: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 21 | pub addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | pub sent: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 23 | pub recv: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | pub reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | pub listener: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientInfo` 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: fields `imei`, `addr`, `action`, `time`, and `client_info` are never read [INFO] [stdout] --> src/model/conn.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ConnectionEvent { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 30 | pub imei: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | pub addr: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | pub action: ConnectionAction, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 33 | pub time: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 34 | pub client_info: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionEvent` 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: enum `EventType` is never used [INFO] [stdout] --> src/model/howen.rs:86:10 [INFO] [stdout] | [INFO] [stdout] 86 | pub enum EventType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AlarmType` is never used [INFO] [stdout] --> src/model/howen.rs:170:10 [INFO] [stdout] | [INFO] [stdout] 170 | pub enum AlarmType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `describe_subscription` is never used [INFO] [stdout] --> src/parsers/howen.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl HowenParser { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn describe_subscription(ct: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JimiIOTParser` is never constructed [INFO] [stdout] --> src/parsers/jimiiot.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct JimiIOTParser { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JIMIIOT_LOGIN_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/jimiiot.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const JIMIIOT_LOGIN_IDENTIFIER: u8 = 0x01; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JIMIIOT_HEARTBEAT_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/jimiiot.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const JIMIIOT_HEARTBEAT_IDENTIFIER: u8 = 0x13; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JIMIIOT_LOCATION_DATA_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/jimiiot.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const JIMIIOT_LOCATION_DATA_IDENTIFIER: u8 = 0xA9; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JIMIIOT_CMD_RESPONSE_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/jimiiot.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const JIMIIOT_CMD_RESPONSE_IDENTIFIER: u8 = 0x80; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `is_ack_required` are never used [INFO] [stdout] --> src/parsers/jimiiot.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl JimiIOTParser { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 33 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn is_ack_required(&self, data_type: &model::FromDeviceDataType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TELTONIKA_LOCATION_IDENTIFIER` is never used [INFO] [stdout] --> src/parsers/teltonika.rs:46:7 [INFO] [stdout] | [INFO] [stdout] 46 | const TELTONIKA_LOCATION_IDENTIFIER: &[u8] = &[0x00, 0x00, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/pubsub/repo.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait PubSubRepo: Send + Sync + Debug { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 19 | async fn close(&mut self) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `connected_at` is never read [INFO] [stdout] --> src/service/client.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct IotClient { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub connected_at: i64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_commands1` is never used [INFO] [stdout] --> src/service/client.rs:107:18 [INFO] [stdout] | [INFO] [stdout] 55 | impl IotClient { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub async fn handle_commands1(&self, mut cmd_rec: Receiver) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `iot_hub_service` is never read [INFO] [stdout] --> src/service/server.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct IotServer { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 38 | iot_hub_service: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_hex_str` is never used [INFO] [stdout] --> src/util/util.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn decode_hex_str(data_str: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/service/client.rs:476:17 [INFO] [stdout] | [INFO] [stdout] 476 | / self.parser [INFO] [stdout] 477 | | .get_device_response(&FromDeviceDataType::FileGenNotifData, data); [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 476 | let _ = self.parser [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/service/client.rs:476:17 [INFO] [stdout] | [INFO] [stdout] 476 | / self.parser [INFO] [stdout] 477 | | .get_device_response(&FromDeviceDataType::FileGenNotifData, data); [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 476 | let _ = self.parser [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 20s [INFO] running `Command { std: "docker" "inspect" "6a3a297f59c3f814e6c12c6246162c1bd13a3655337f1e218a7324b0e82b09e6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a3a297f59c3f814e6c12c6246162c1bd13a3655337f1e218a7324b0e82b09e6", kill_on_drop: false }` [INFO] [stdout] 6a3a297f59c3f814e6c12c6246162c1bd13a3655337f1e218a7324b0e82b09e6