[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 65dd30fb9e882a7e8f0be10caca62936db2a98b8 for pr-133502-28
[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 65dd30fb9e882a7e8f0be10caca62936db2a98b8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65dd30fb9e882a7e8f0be10caca62936db2a98b8" "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" "+65dd30fb9e882a7e8f0be10caca62936db2a98b8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tonic-prost-build v0.14.2
[INFO] [stderr]   Downloaded unicode-ident v1.0.20
[INFO] [stderr]   Downloaded tonic-build v0.14.2
[INFO] [stderr]   Downloaded proc-macro2 v1.0.102
[INFO] [stderr]   Downloaded futures-io v0.3.31
[INFO] [stderr]   Downloaded tonic-prost v0.14.2
[INFO] [stderr]   Downloaded curve25519-dalek-derive v0.1.1
[INFO] [stderr]   Downloaded futures-macro v0.3.31
[INFO] [stderr]   Downloaded rust-ini v0.18.0
[INFO] [stderr]   Downloaded nuid v0.5.0
[INFO] [stderr]   Downloaded data-encoding v2.9.0
[INFO] [stderr]   Downloaded json5 v0.4.1
[INFO] [stderr]   Downloaded uncased v0.9.10
[INFO] [stderr]   Downloaded ed25519 v2.2.3
[INFO] [stderr]   Downloaded urlencoding v2.1.3
[INFO] [stderr]   Downloaded fred-macros v0.1.0
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded dlv-list v0.3.0
[INFO] [stderr]   Downloaded yoke-derive v0.8.1
[INFO] [stderr]   Downloaded crc v3.3.0
[INFO] [stderr]   Downloaded serde_repr v0.1.20
[INFO] [stderr]   Downloaded crc16 v0.4.0
[INFO] [stderr]   Downloaded crc-catalog v2.4.0
[INFO] [stderr]   Downloaded ed25519-dalek v2.2.0
[INFO] [stderr]   Downloaded cookie-factory v0.3.2
[INFO] [stderr]   Downloaded serde_nanos v0.1.4
[INFO] [stderr]   Downloaded multimap v0.10.1
[INFO] [stderr]   Downloaded atomic v0.6.1
[INFO] [stderr]   Downloaded webpki-roots v0.26.11
[INFO] [stderr]   Downloaded potential_utf v0.1.4
[INFO] [stderr]   Downloaded fiat-crypto v0.2.9
[INFO] [stderr]   Downloaded fixedbitset v0.5.7
[INFO] [stderr]   Downloaded tokio-macros v2.6.0
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.6
[INFO] [stderr]   Downloaded slab v0.4.11
[INFO] [stderr]   Downloaded pin-project-internal v1.1.10
[INFO] [stderr]   Downloaded bytes-utils v0.1.4
[INFO] [stderr]   Downloaded prost-derive v0.14.1
[INFO] [stderr]   Downloaded hyper-timeout v0.5.2
[INFO] [stderr]   Downloaded axum-core v0.5.5
[INFO] [stderr]   Downloaded writeable v0.6.2
[INFO] [stderr]   Downloaded futures-executor v0.3.31
[INFO] [stderr]   Downloaded ordered-multimap v0.4.3
[INFO] [stderr]   Downloaded tryhard v0.5.2
[INFO] [stderr]   Downloaded rustls-native-certs v0.7.3
[INFO] [stderr]   Downloaded nkeys v0.4.5
[INFO] [stderr]   Downloaded yoke v0.8.1
[INFO] [stderr]   Downloaded prost v0.14.1
[INFO] [stderr]   Downloaded zerovec-derive v0.11.2
[INFO] [stderr]   Downloaded pulldown-cmark-to-cmark v21.0.0
[INFO] [stderr]   Downloaded tinystr v0.8.2
[INFO] [stderr]   Downloaded pest_derive v2.8.3
[INFO] [stderr]   Downloaded pest_generator v2.8.3
[INFO] [stderr]   Downloaded iana-time-zone v0.1.64
[INFO] [stderr]   Downloaded deranged v0.5.5
[INFO] [stderr]   Downloaded rustls-pemfile v2.2.0
[INFO] [stderr]   Downloaded prost-build v0.14.1
[INFO] [stderr]   Downloaded yaml-rust v0.4.5
[INFO] [stderr]   Downloaded litemap v0.8.1
[INFO] [stderr]   Downloaded unsafe-libyaml v0.2.11
[INFO] [stderr]   Downloaded icu_provider v2.1.1
[INFO] [stderr]   Downloaded futures v0.3.31
[INFO] [stderr]   Downloaded toml v0.5.11
[INFO] [stderr]   Downloaded ron v0.7.1
[INFO] [stderr]   Downloaded ucd-trie v0.1.7
[INFO] [stderr]   Downloaded prost-types v0.14.1
[INFO] [stderr]   Downloaded pin-project v1.1.10
[INFO] [stderr]   Downloaded toml v0.7.8
[INFO] [stderr]   Downloaded serde_yaml v0.9.34+deprecated
[INFO] [stderr]   Downloaded base64 v0.13.1
[INFO] [stderr]   Downloaded tokio-stream v0.1.17
[INFO] [stderr]   Downloaded icu_normalizer v2.1.1
[INFO] [stderr]   Downloaded icu_normalizer_data v2.1.1
[INFO] [stderr]   Downloaded redis-protocol v6.0.0
[INFO] [stderr]   Downloaded bytemuck v1.24.0
[INFO] [stderr]   Downloaded pest_meta v2.8.3
[INFO] [stderr]   Downloaded rustls-pki-types v1.13.0
[INFO] [stderr]   Downloaded config v0.13.4
[INFO] [stderr]   Downloaded icu_properties v2.1.1
[INFO] [stderr]   Downloaded zerotrie v0.2.3
[INFO] [stderr]   Downloaded toml_edit v0.19.15
[INFO] [stderr]   Downloaded figment v0.10.19
[INFO] [stderr]   Downloaded hyper-util v0.1.17
[INFO] [stderr]   Downloaded icu_locale_core v2.1.1
[INFO] [stderr]   Downloaded rustls-webpki v0.103.8
[INFO] [stderr]   Downloaded mio v1.1.0
[INFO] [stderr]   Downloaded icu_collections v2.1.1
[INFO] [stderr]   Downloaded tonic v0.14.2
[INFO] [stderr]   Downloaded tokio-util v0.7.16
[INFO] [stderr]   Downloaded zerovec v0.11.5
[INFO] [stderr]   Downloaded signatory v0.27.1
[INFO] [stderr]   Downloaded pest v2.8.3
[INFO] [stderr]   Downloaded hyper v1.7.0
[INFO] [stderr]   Downloaded h2 v0.4.12
[INFO] [stderr]   Downloaded tokio-websockets v0.10.1
[INFO] [stderr]   Downloaded syn v2.0.108
[INFO] [stderr]   Downloaded pulldown-cmark v0.13.0
[INFO] [stderr]   Downloaded axum v0.8.6
[INFO] [stderr]   Downloaded winnow v0.5.40
[INFO] [stderr]   Downloaded icu_properties_data v2.1.1
[INFO] [stderr]   Downloaded rustls-webpki v0.102.8
[INFO] [stderr]   Downloaded chrono v0.4.42
[INFO] [stderr]   Downloaded webpki-roots v1.0.4
[INFO] [stderr]   Downloaded curve25519-dalek v4.1.3
[INFO] [stderr]   Downloaded fred v10.1.0
[INFO] [stderr]   Downloaded async-nats v0.43.1
[INFO] [stderr]   Downloaded rustls v0.23.35
[INFO] [stderr]   Downloaded petgraph v0.7.1
[INFO] [stderr]   Downloaded tokio v1.48.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5
[INFO] running `Command { std: "docker" "start" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5" "/opt/rustwide/cargo-home/bin/cargo" "+65dd30fb9e882a7e8f0be10caca62936db2a98b8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5" "/opt/rustwide/cargo-home/bin/cargo" "+65dd30fb9e882a7e8f0be10caca62936db2a98b8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.102
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking hashbrown v0.16.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling cc v1.2.41
[INFO] [stderr]     Checking rustls-pki-types v1.13.0
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling pulldown-cmark v0.13.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]    Compiling crc16 v0.4.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]    Compiling pulldown-cmark-to-cmark v21.0.0
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking signatory v0.27.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking time-core v0.1.6
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking cookie-factory v0.3.2
[INFO] [stderr]     Checking num-conv v0.1.0
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking winnow v0.5.40
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking nuid v0.5.0
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking crc v3.3.0
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling prost-derive v0.14.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling tonic-build v0.14.2
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling fred-macros v0.1.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling prost v0.14.1
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking nkeys v0.4.5
[INFO] [stderr]    Compiling prost-types v0.14.1
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking serde_nanos v0.1.4
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking toml_edit v0.19.15
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling prost-build v0.14.1
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking bytes-utils v0.1.4
[INFO] [stderr]     Checking config v0.13.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking redis-protocol v6.0.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling tonic-prost-build v0.14.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking toml v0.7.8
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling iot-hub v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking axum-core v0.5.5
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tryhard v0.5.2
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking async-nats v0.43.1
[INFO] [stderr]     Checking fred v10.1.0
[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<Vec<Command>> {
[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<mpsc::Receiver<Command>> {
[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: `imei`
[INFO] [stdout]   --> src/cache/repo.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |     async fn get_device_commands(&self, imei: String) -> Result<Vec<Command>> {
[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: `req`
[INFO] [stdout]    --> src/iothubservice/persist.rs:118:37
[INFO] [stdout]     |
[INFO] [stdout] 118 |     async fn stream_commands(&self, req: StreamCommandsRequest) -> Result<mpsc::Receiver<Command>> {
[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: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<mpsc::Receiver<Command>> {
[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<mpsc::Receiver<Command>> {
[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<model::FromDeviceDataType> {
[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<String> {
[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<bool> {
[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<Vec<u8>> {
[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:54:24
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn get_imei(&self, data: &[u8]) -> Result<String> {
[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<bool> {
[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<Vec<u8>> {
[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<String> {
[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:70:29
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn get_data_type(&self, data: &[u8]) -> Result<model::FromDeviceDataType> {
[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<String> {
[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<bool> {
[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<Vec<u8>> {
[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<String> {
[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<bool> {
[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<Vec<u8>> {
[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<String> {
[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: `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: `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<Arc<Self>, tonic::transport::Error> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     async fn get_channel(&self) -> Option<Channel> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub async fn get_auth_client(&self) -> Option<AuthServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub async fn get_data_client(&self) -> Option<DataServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub async fn get_commands_client(&self) -> Option<CommandServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn spawn_health_checker(self: Arc<Self>) {
[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<mpsc::Receiver<Command>>;
[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<ClientInfo>,
[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<CommandInfo>) {
[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<Box<dyn IotHubServiceRepo>>,
[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<Vec<u8>> {
[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: 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<Arc<Self>, tonic::transport::Error> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     async fn get_channel(&self) -> Option<Channel> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub async fn get_auth_client(&self) -> Option<AuthServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub async fn get_data_client(&self) -> Option<DataServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub async fn get_commands_client(&self) -> Option<CommandServiceClient<Channel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn spawn_health_checker(self: Arc<Self>) {
[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<mpsc::Receiver<Command>>;
[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<ClientInfo>,
[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<CommandInfo>) {
[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<Box<dyn IotHubServiceRepo>>,
[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 1m 32s
[INFO] running `Command { std: "docker" "inspect" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5", kill_on_drop: false }`
[INFO] [stdout] e2598c682be8f400daccd44ffa7240fc25253a471acc963a4ec674623cbdd8e5
