[INFO] cloning repository https://github.com/v0l/victron_pure_ess [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/v0l/victron_pure_ess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fv0l%2Fvictron_pure_ess", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fv0l%2Fvictron_pure_ess'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 13e1d9981a98e34b66828461f72e0a8265b6bd3e [INFO] checking v0l/victron_pure_ess against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fv0l%2Fvictron_pure_ess" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/v0l/victron_pure_ess on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/v0l/victron_pure_ess [INFO] finished tweaking git repo https://github.com/v0l/victron_pure_ess [INFO] tweaked toml for git repo https://github.com/v0l/victron_pure_ess written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/v0l/victron_pure_ess 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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio-modbus v0.12.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0db9a3b41685f4c117dae0b9a67ba4b975c90643be559bbd4f3d5b6b8f37c736 [INFO] running `Command { std: "docker" "start" "-a" "0db9a3b41685f4c117dae0b9a67ba4b975c90643be559bbd4f3d5b6b8f37c736", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0db9a3b41685f4c117dae0b9a67ba4b975c90643be559bbd4f3d5b6b8f37c736", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0db9a3b41685f4c117dae0b9a67ba4b975c90643be559bbd4f3d5b6b8f37c736", kill_on_drop: false }` [INFO] [stdout] 0db9a3b41685f4c117dae0b9a67ba4b975c90643be559bbd4f3d5b6b8f37c736 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 01f11e979e07fe0a810fc5247c13611402d97f08e6c22be22ba44b6a16bae536 [INFO] running `Command { std: "docker" "start" "-a" "01f11e979e07fe0a810fc5247c13611402d97f08e6c22be22ba44b6a16bae536", kill_on_drop: false }` [INFO] [stderr] Compiling async-trait v0.1.79 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Compiling syn v2.0.55 [INFO] [stderr] Checking chrono v0.4.35 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking serde v1.0.197 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-modbus v0.12.0 [INFO] [stderr] Checking serde_json v1.0.115 [INFO] [stderr] Checking ve_smart_ess v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RateDischarge` [INFO] [stdout] --> src/smart_ess/mod.rs:8:51 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::smart_ess::rate::{DischargeMode, Rate, RateDischarge}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Rate` is imported redundantly [INFO] [stdout] --> src/smart_ess/mod.rs:221:46 [INFO] [stdout] | [INFO] [stdout] 220 | use super::*; [INFO] [stdout] | -------- the item `Rate` is already imported here [INFO] [stdout] 221 | use crate::smart_ess::rate::{ChargeMode, Rate, RateCharge}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:118:40 [INFO] [stdout] | [INFO] [stdout] 118 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(8, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:118:58 [INFO] [stdout] | [INFO] [stdout] 118 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(8, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:119:26 [INFO] [stdout] | [INFO] [stdout] 119 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:119:44 [INFO] [stdout] | [INFO] [stdout] 119 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:120:26 [INFO] [stdout] | [INFO] [stdout] 120 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:120:44 [INFO] [stdout] | [INFO] [stdout] 120 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:122:40 [INFO] [stdout] | [INFO] [stdout] 122 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(9, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:122:58 [INFO] [stdout] | [INFO] [stdout] 122 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(9, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:123:44 [INFO] [stdout] | [INFO] [stdout] 123 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:124:26 [INFO] [stdout] | [INFO] [stdout] 124 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:124:44 [INFO] [stdout] | [INFO] [stdout] 124 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:126:38 [INFO] [stdout] | [INFO] [stdout] 126 | let next = rate.schedule(Utc.ymd(2022, 04, 18).and_hms(10, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:126:56 [INFO] [stdout] | [INFO] [stdout] 126 | let next = rate.schedule(Utc.ymd(2022, 04, 18).and_hms(10, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:127:44 [INFO] [stdout] | [INFO] [stdout] 127 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:128:26 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(Local.ymd(2022, 04, 19).and_hms(9, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:128:44 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(Local.ymd(2022, 04, 19).and_hms(9, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let from_sch = from.sub(Duration::days(1)); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::DateTime::::date`: Use `date_naive()` instead [INFO] [stdout] --> src/smart_ess/window.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:85:73 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | ) + Duration::days(days as i64); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::minutes`: Use `TimeDelta::try_minutes` instead [INFO] [stdout] --> src/smart_ess/window.rs:93:48 [INFO] [stdout] | [INFO] [stdout] 93 | end: start_utc + Duration::minutes(self.period() as i64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let from_sch = from.sub(Duration::days(1)); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::DateTime::::date`: Use `date_naive()` instead [INFO] [stdout] --> src/smart_ess/window.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:85:73 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | ) + Duration::days(days as i64); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::minutes`: Use `TimeDelta::try_minutes` instead [INFO] [stdout] --> src/smart_ess/window.rs:93:48 [INFO] [stdout] | [INFO] [stdout] 93 | end: start_utc + Duration::minutes(self.period() as i64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:214:30 [INFO] [stdout] | [INFO] [stdout] 214 | let a_monday = Local.ymd(2022, 04, 18).and_hms(8, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:214:48 [INFO] [stdout] | [INFO] [stdout] 214 | let a_monday = Local.ymd(2022, 04, 18).and_hms(8, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:215:32 [INFO] [stdout] | [INFO] [stdout] 215 | let a_saturday = Local.ymd(2022, 04, 16).and_hms(8, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:215:50 [INFO] [stdout] | [INFO] [stdout] 215 | let a_saturday = Local.ymd(2022, 04, 16).and_hms(8, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:216:30 [INFO] [stdout] | [INFO] [stdout] 216 | let a_friday = Local.ymd(2022, 04, 22).and_hms(8, 59, 59); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:216:48 [INFO] [stdout] | [INFO] [stdout] 216 | let a_friday = Local.ymd(2022, 04, 22).and_hms(8, 59, 59); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:217:37 [INFO] [stdout] | [INFO] [stdout] 217 | let a_sunday_inside = Local.ymd(2022, 04, 24).and_hms(16, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:217:55 [INFO] [stdout] | [INFO] [stdout] 217 | let a_sunday_inside = Local.ymd(2022, 04, 24).and_hms(16, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:227:26 [INFO] [stdout] | [INFO] [stdout] 227 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:227:44 [INFO] [stdout] | [INFO] [stdout] 227 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:228:26 [INFO] [stdout] | [INFO] [stdout] 228 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(16, 59, 0), next.end); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:228:44 [INFO] [stdout] | [INFO] [stdout] 228 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(16, 59, 0), next.end); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:232:26 [INFO] [stdout] | [INFO] [stdout] 232 | assert_eq!(Local.ymd(2022, 04, 17).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:232:44 [INFO] [stdout] | [INFO] [stdout] 232 | assert_eq!(Local.ymd(2022, 04, 17).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start, "same day before schedule"); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:236:44 [INFO] [stdout] | [INFO] [stdout] 236 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start, "same day before schedule"); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:240:26 [INFO] [stdout] | [INFO] [stdout] 240 | assert_eq!(Local.ymd(2022, 04, 24).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:240:44 [INFO] [stdout] | [INFO] [stdout] 240 | assert_eq!(Local.ymd(2022, 04, 24).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:287:26 [INFO] [stdout] | [INFO] [stdout] 287 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:287:44 [INFO] [stdout] | [INFO] [stdout] 287 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:291:38 [INFO] [stdout] | [INFO] [stdout] 291 | assert_eq!(next.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:291:56 [INFO] [stdout] | [INFO] [stdout] 291 | assert_eq!(next.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:291:26 [INFO] [stdout] | [INFO] [stdout] 291 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:291:44 [INFO] [stdout] | [INFO] [stdout] 291 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:295:45 [INFO] [stdout] | [INFO] [stdout] 295 | assert_eq!(next.window.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:295:63 [INFO] [stdout] | [INFO] [stdout] 295 | assert_eq!(next.window.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:302:14 [INFO] [stdout] | [INFO] [stdout] 302 | .ymd(2022, 05, 03) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:303:14 [INFO] [stdout] | [INFO] [stdout] 303 | .and_hms(17, 30, 0) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `voltage` is never read [INFO] [stdout] --> src/smart_ess/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct ControllerInputState { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ControllerInputState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next_charge` is never used [INFO] [stdout] --> src/smart_ess/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn next_charge(&self, from: DateTime) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/smart_ess/window.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(pub String); [INFO] [stdout] | --------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RateError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(()); [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Input` is never constructed [INFO] [stdout] --> src/victron/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Side { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 11 | Input, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Side` 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: variant `L3` is never constructed [INFO] [stdout] --> src/victron/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Line { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | L3 = 3, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Line` 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 `voltage`, `current`, and `frequency` are never read [INFO] [stdout] --> src/victron/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct LineDetail { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | pub current: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 26 | pub frequency: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineDetail` 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: methods `read_bool` and `read_i16` are never used [INFO] [stdout] --> src/victron/client.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 19 | impl VictronClient { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub async fn read_bool(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn read_i16(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Mode` is never constructed [INFO] [stdout] --> src/victron/ess.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Register { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 55 | Mode(Hub4Mode), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: method `get_param` is never used [INFO] [stdout] --> src/victron/ess.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 58 | impl VictronESS { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub async fn get_param(&mut self, reg: Register) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/victron/ve_bus.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | Soc(f32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 126 | Soc(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub enum Register { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 118 | ActiveInputCurrentLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | [INFO] [stdout] 120 | BatteryVoltage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 121 | BatteryCurrent, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 122 | [INFO] [stdout] 123 | PhaseCount, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 124 | ActiveInput, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | State, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | Mode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Alarm(Alarm), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | ACInputIgnore(Line, bool), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: variants `Line1`, `Line2`, and `Disconnected` are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 135 | pub enum ActiveInput { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 136 | Line1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | Line2, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | Disconnected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveInput` 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 variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 185 | pub enum Alarm { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 186 | HighTemperature(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 187 | LowBattery(AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | Overload(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 189 | TemperatureSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 190 | VoltageSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 191 | [INFO] [stdout] 192 | LineTemperature(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 193 | LineLowBattery(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 194 | LineOverload(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 195 | LineRipple(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 196 | [INFO] [stdout] 197 | PhaseRotation(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | GridLost(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Alarm` 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: methods `get_state`, `get_mode`, `set_mode`, `get_active_input`, and `get_alarms` are never used [INFO] [stdout] --> src/victron/ve_bus.rs:247:18 [INFO] [stdout] | [INFO] [stdout] 201 | impl VictronBus { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn get_state(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_mode(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub async fn set_mode(&mut self, mode: Mode) -> Result<(), VictronError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub async fn get_active_input(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn get_alarms(&mut self) -> Result, VictronError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VictronBattery` is never constructed [INFO] [stdout] --> src/victron/ve_battery.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct VictronBattery { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `capacity` are never used [INFO] [stdout] --> src/victron/ve_battery.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VictronBattery { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 10 | pub async fn new(addr: SocketAddr, unit: u8) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn capacity(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 22 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `voltage` is never read [INFO] [stdout] --> src/smart_ess/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct ControllerInputState { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ControllerInputState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next_charge` is never used [INFO] [stdout] --> src/smart_ess/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn next_charge(&self, from: DateTime) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/smart_ess/window.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(pub String); [INFO] [stdout] | --------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RateError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(()); [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Input` is never constructed [INFO] [stdout] --> src/victron/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Side { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 11 | Input, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Side` 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: variant `L3` is never constructed [INFO] [stdout] --> src/victron/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Line { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | L3 = 3, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Line` 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 `voltage`, `current`, and `frequency` are never read [INFO] [stdout] --> src/victron/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct LineDetail { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | pub current: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 26 | pub frequency: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineDetail` 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: methods `read_bool` and `read_i16` are never used [INFO] [stdout] --> src/victron/client.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 19 | impl VictronClient { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub async fn read_bool(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn read_i16(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Mode` is never constructed [INFO] [stdout] --> src/victron/ess.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Register { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 55 | Mode(Hub4Mode), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: method `get_param` is never used [INFO] [stdout] --> src/victron/ess.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 58 | impl VictronESS { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub async fn get_param(&mut self, reg: Register) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/victron/ve_bus.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | Soc(f32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 126 | Soc(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub enum Register { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 118 | ActiveInputCurrentLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | [INFO] [stdout] 120 | BatteryVoltage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 121 | BatteryCurrent, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 122 | [INFO] [stdout] 123 | PhaseCount, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 124 | ActiveInput, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | State, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | Mode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Alarm(Alarm), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | ACInputIgnore(Line, bool), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: variants `Line1`, `Line2`, and `Disconnected` are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 135 | pub enum ActiveInput { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 136 | Line1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | Line2, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | Disconnected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveInput` 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 variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 185 | pub enum Alarm { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 186 | HighTemperature(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 187 | LowBattery(AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | Overload(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 189 | TemperatureSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 190 | VoltageSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 191 | [INFO] [stdout] 192 | LineTemperature(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 193 | LineLowBattery(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 194 | LineOverload(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 195 | LineRipple(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 196 | [INFO] [stdout] 197 | PhaseRotation(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | GridLost(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Alarm` 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: methods `get_state`, `get_mode`, `set_mode`, `get_active_input`, and `get_alarms` are never used [INFO] [stdout] --> src/victron/ve_bus.rs:247:18 [INFO] [stdout] | [INFO] [stdout] 201 | impl VictronBus { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn get_state(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_mode(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub async fn set_mode(&mut self, mode: Mode) -> Result<(), VictronError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub async fn get_active_input(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn get_alarms(&mut self) -> Result, VictronError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VictronBattery` is never constructed [INFO] [stdout] --> src/victron/ve_battery.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct VictronBattery { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `capacity` are never used [INFO] [stdout] --> src/victron/ve_battery.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VictronBattery { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 10 | pub async fn new(addr: SocketAddr, unit: u8) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn capacity(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 68 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.81s [INFO] running `Command { std: "docker" "inspect" "01f11e979e07fe0a810fc5247c13611402d97f08e6c22be22ba44b6a16bae536", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01f11e979e07fe0a810fc5247c13611402d97f08e6c22be22ba44b6a16bae536", kill_on_drop: false }` [INFO] [stdout] 01f11e979e07fe0a810fc5247c13611402d97f08e6c22be22ba44b6a16bae536 [INFO] checking v0l/victron_pure_ess against try#645bb72776a6a56a1a8f52631a44bd082b2ba509 for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fv0l%2Fvictron_pure_ess" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/v0l/victron_pure_ess on toolchain 645bb72776a6a56a1a8f52631a44bd082b2ba509 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/v0l/victron_pure_ess [INFO] finished tweaking git repo https://github.com/v0l/victron_pure_ess [INFO] tweaked toml for git repo https://github.com/v0l/victron_pure_ess written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/v0l/victron_pure_ess 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" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9fe329f0551b56c303db207eedb7035509186731a53c42d0d6f27e165483f0c0 [INFO] running `Command { std: "docker" "start" "-a" "9fe329f0551b56c303db207eedb7035509186731a53c42d0d6f27e165483f0c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9fe329f0551b56c303db207eedb7035509186731a53c42d0d6f27e165483f0c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9fe329f0551b56c303db207eedb7035509186731a53c42d0d6f27e165483f0c0", kill_on_drop: false }` [INFO] [stdout] 9fe329f0551b56c303db207eedb7035509186731a53c42d0d6f27e165483f0c0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a5e43bcaccb81ede180588da8e7e4308cd8d1ee78ba2ae319a3fa19757fac3fd [INFO] running `Command { std: "docker" "start" "-a" "a5e43bcaccb81ede180588da8e7e4308cd8d1ee78ba2ae319a3fa19757fac3fd", kill_on_drop: false }` [INFO] [stderr] Compiling async-trait v0.1.79 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Compiling syn v2.0.55 [INFO] [stderr] Checking chrono v0.4.35 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking serde v1.0.197 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-modbus v0.12.0 [INFO] [stderr] Checking serde_json v1.0.115 [INFO] [stderr] Checking ve_smart_ess v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RateDischarge` [INFO] [stdout] --> src/smart_ess/mod.rs:8:51 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::smart_ess::rate::{DischargeMode, Rate, RateDischarge}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Rate` is imported redundantly [INFO] [stdout] --> src/smart_ess/mod.rs:221:46 [INFO] [stdout] | [INFO] [stdout] 220 | use super::*; [INFO] [stdout] | -------- the item `Rate` is already imported here [INFO] [stdout] 221 | use crate::smart_ess::rate::{ChargeMode, Rate, RateCharge}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let from_sch = from.sub(Duration::days(1)); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::DateTime::::date`: Use `date_naive()` instead [INFO] [stdout] --> src/smart_ess/window.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:85:73 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | ) + Duration::days(days as i64); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::minutes`: Use `TimeDelta::try_minutes` instead [INFO] [stdout] --> src/smart_ess/window.rs:93:48 [INFO] [stdout] | [INFO] [stdout] 93 | end: start_utc + Duration::minutes(self.period() as i64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:118:40 [INFO] [stdout] | [INFO] [stdout] 118 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(8, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:118:58 [INFO] [stdout] | [INFO] [stdout] 118 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(8, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:119:26 [INFO] [stdout] | [INFO] [stdout] 119 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:119:44 [INFO] [stdout] | [INFO] [stdout] 119 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:120:26 [INFO] [stdout] | [INFO] [stdout] 120 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:120:44 [INFO] [stdout] | [INFO] [stdout] 120 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:122:40 [INFO] [stdout] | [INFO] [stdout] 122 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(9, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:122:58 [INFO] [stdout] | [INFO] [stdout] 122 | let next = rate.schedule(Local.ymd(2022, 04, 18).and_hms(9, 0, 0).with_timezone(&Utc)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:123:44 [INFO] [stdout] | [INFO] [stdout] 123 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(9, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:124:26 [INFO] [stdout] | [INFO] [stdout] 124 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:124:44 [INFO] [stdout] | [INFO] [stdout] 124 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:126:38 [INFO] [stdout] | [INFO] [stdout] 126 | let next = rate.schedule(Utc.ymd(2022, 04, 18).and_hms(10, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:126:56 [INFO] [stdout] | [INFO] [stdout] 126 | let next = rate.schedule(Utc.ymd(2022, 04, 18).and_hms(10, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[0].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:127:44 [INFO] [stdout] | [INFO] [stdout] 127 | assert_eq!(Local.ymd(2022, 04, 18).and_hms(11, 0, 0), next[0].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/rate.rs:128:26 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(Local.ymd(2022, 04, 19).and_hms(9, 0, 0), next[1].start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/rate.rs:128:44 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(Local.ymd(2022, 04, 19).and_hms(9, 0, 0), next[1].start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let from_sch = from.sub(Duration::days(1)); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::DateTime::::date`: Use `date_naive()` instead [INFO] [stdout] --> src/smart_ess/window.rs:85:44 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:85:73 [INFO] [stdout] | [INFO] [stdout] 85 | let start_local = from_sch.date().with_timezone(&Local).and_hms( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::days`: Use `TimeDelta::try_days` instead [INFO] [stdout] --> src/smart_ess/window.rs:89:31 [INFO] [stdout] | [INFO] [stdout] 89 | ) + Duration::days(days as i64); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::TimeDelta::minutes`: Use `TimeDelta::try_minutes` instead [INFO] [stdout] --> src/smart_ess/window.rs:93:48 [INFO] [stdout] | [INFO] [stdout] 93 | end: start_utc + Duration::minutes(self.period() as i64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:214:30 [INFO] [stdout] | [INFO] [stdout] 214 | let a_monday = Local.ymd(2022, 04, 18).and_hms(8, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:214:48 [INFO] [stdout] | [INFO] [stdout] 214 | let a_monday = Local.ymd(2022, 04, 18).and_hms(8, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:215:32 [INFO] [stdout] | [INFO] [stdout] 215 | let a_saturday = Local.ymd(2022, 04, 16).and_hms(8, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:215:50 [INFO] [stdout] | [INFO] [stdout] 215 | let a_saturday = Local.ymd(2022, 04, 16).and_hms(8, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:216:30 [INFO] [stdout] | [INFO] [stdout] 216 | let a_friday = Local.ymd(2022, 04, 22).and_hms(8, 59, 59); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:216:48 [INFO] [stdout] | [INFO] [stdout] 216 | let a_friday = Local.ymd(2022, 04, 22).and_hms(8, 59, 59); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:217:37 [INFO] [stdout] | [INFO] [stdout] 217 | let a_sunday_inside = Local.ymd(2022, 04, 24).and_hms(16, 0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:217:55 [INFO] [stdout] | [INFO] [stdout] 217 | let a_sunday_inside = Local.ymd(2022, 04, 24).and_hms(16, 0, 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:227:26 [INFO] [stdout] | [INFO] [stdout] 227 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:227:44 [INFO] [stdout] | [INFO] [stdout] 227 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:228:26 [INFO] [stdout] | [INFO] [stdout] 228 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(16, 59, 0), next.end); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:228:44 [INFO] [stdout] | [INFO] [stdout] 228 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(16, 59, 0), next.end); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:232:26 [INFO] [stdout] | [INFO] [stdout] 232 | assert_eq!(Local.ymd(2022, 04, 17).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:232:44 [INFO] [stdout] | [INFO] [stdout] 232 | assert_eq!(Local.ymd(2022, 04, 17).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start, "same day before schedule"); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:236:44 [INFO] [stdout] | [INFO] [stdout] 236 | assert_eq!(Local.ymd(2022, 04, 22).and_hms(9, 0, 0), next.start, "same day before schedule"); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:240:26 [INFO] [stdout] | [INFO] [stdout] 240 | assert_eq!(Local.ymd(2022, 04, 24).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:240:44 [INFO] [stdout] | [INFO] [stdout] 240 | assert_eq!(Local.ymd(2022, 04, 24).and_hms(9, 0, 0), next.start); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:287:26 [INFO] [stdout] | [INFO] [stdout] 287 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:287:44 [INFO] [stdout] | [INFO] [stdout] 287 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/window.rs:291:38 [INFO] [stdout] | [INFO] [stdout] 291 | assert_eq!(next.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/window.rs:291:56 [INFO] [stdout] | [INFO] [stdout] 291 | assert_eq!(next.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:291:26 [INFO] [stdout] | [INFO] [stdout] 291 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:291:44 [INFO] [stdout] | [INFO] [stdout] 291 | let from = Local.ymd(2022, 05, 03).and_hms(2, 0, 0).with_timezone(&Utc); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:295:45 [INFO] [stdout] | [INFO] [stdout] 295 | assert_eq!(next.window.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:295:63 [INFO] [stdout] | [INFO] [stdout] 295 | assert_eq!(next.window.start, Local.ymd(2022, 05, 02).and_hms(23, 0, 0)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead [INFO] [stdout] --> src/smart_ess/mod.rs:302:14 [INFO] [stdout] | [INFO] [stdout] 302 | .ymd(2022, 05, 03) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::Date::::and_hms`: Use and_hms_opt() instead [INFO] [stdout] --> src/smart_ess/mod.rs:303:14 [INFO] [stdout] | [INFO] [stdout] 303 | .and_hms(17, 30, 0) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `voltage` is never read [INFO] [stdout] --> src/smart_ess/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct ControllerInputState { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ControllerInputState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next_charge` is never used [INFO] [stdout] --> src/smart_ess/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn next_charge(&self, from: DateTime) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/smart_ess/window.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(pub String); [INFO] [stdout] | --------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RateError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(()); [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Input` is never constructed [INFO] [stdout] --> src/victron/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Side { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 11 | Input, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Side` 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: variant `L3` is never constructed [INFO] [stdout] --> src/victron/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Line { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | L3 = 3, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Line` 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 `voltage`, `current`, and `frequency` are never read [INFO] [stdout] --> src/victron/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct LineDetail { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | pub current: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 26 | pub frequency: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineDetail` 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: methods `read_bool` and `read_i16` are never used [INFO] [stdout] --> src/victron/client.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 19 | impl VictronClient { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub async fn read_bool(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn read_i16(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Mode` is never constructed [INFO] [stdout] --> src/victron/ess.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Register { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 55 | Mode(Hub4Mode), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: method `get_param` is never used [INFO] [stdout] --> src/victron/ess.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 58 | impl VictronESS { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub async fn get_param(&mut self, reg: Register) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/victron/ve_bus.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | Soc(f32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 126 | Soc(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub enum Register { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 118 | ActiveInputCurrentLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | [INFO] [stdout] 120 | BatteryVoltage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 121 | BatteryCurrent, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 122 | [INFO] [stdout] 123 | PhaseCount, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 124 | ActiveInput, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | State, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | Mode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Alarm(Alarm), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | ACInputIgnore(Line, bool), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: variants `Line1`, `Line2`, and `Disconnected` are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 135 | pub enum ActiveInput { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 136 | Line1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | Line2, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | Disconnected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveInput` 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 variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 185 | pub enum Alarm { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 186 | HighTemperature(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 187 | LowBattery(AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | Overload(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 189 | TemperatureSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 190 | VoltageSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 191 | [INFO] [stdout] 192 | LineTemperature(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 193 | LineLowBattery(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 194 | LineOverload(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 195 | LineRipple(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 196 | [INFO] [stdout] 197 | PhaseRotation(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | GridLost(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Alarm` 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: methods `get_state`, `get_mode`, `set_mode`, `get_active_input`, and `get_alarms` are never used [INFO] [stdout] --> src/victron/ve_bus.rs:247:18 [INFO] [stdout] | [INFO] [stdout] 201 | impl VictronBus { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn get_state(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_mode(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub async fn set_mode(&mut self, mode: Mode) -> Result<(), VictronError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub async fn get_active_input(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn get_alarms(&mut self) -> Result, VictronError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VictronBattery` is never constructed [INFO] [stdout] --> src/victron/ve_battery.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct VictronBattery { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `capacity` are never used [INFO] [stdout] --> src/victron/ve_battery.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VictronBattery { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 10 | pub async fn new(addr: SocketAddr, unit: u8) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn capacity(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 22 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `voltage` is never read [INFO] [stdout] --> src/smart_ess/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct ControllerInputState { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ControllerInputState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next_charge` is never used [INFO] [stdout] --> src/smart_ess/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn next_charge(&self, from: DateTime) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/smart_ess/window.rs:54:22 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(pub String); [INFO] [stdout] | --------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RateError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 54 | pub struct RateError(()); [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Input` is never constructed [INFO] [stdout] --> src/victron/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Side { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 11 | Input, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Side` 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: variant `L3` is never constructed [INFO] [stdout] --> src/victron/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Line { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | L3 = 3, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Line` 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 `voltage`, `current`, and `frequency` are never read [INFO] [stdout] --> src/victron/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct LineDetail { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | pub voltage: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | pub current: f32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 26 | pub frequency: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineDetail` 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: methods `read_bool` and `read_i16` are never used [INFO] [stdout] --> src/victron/client.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 19 | impl VictronClient { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub async fn read_bool(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn read_i16(&mut self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Mode` is never constructed [INFO] [stdout] --> src/victron/ess.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Register { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 55 | Mode(Hub4Mode), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: method `get_param` is never used [INFO] [stdout] --> src/victron/ess.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 58 | impl VictronESS { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub async fn get_param(&mut self, reg: Register) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/victron/ve_bus.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | Soc(f32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 126 | Soc(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub enum Register { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 118 | ActiveInputCurrentLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | [INFO] [stdout] 120 | BatteryVoltage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 121 | BatteryCurrent, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 122 | [INFO] [stdout] 123 | PhaseCount, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 124 | ActiveInput, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | State, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 128 | Mode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Alarm(Alarm), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | ACInputIgnore(Line, bool), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` 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: variants `Line1`, `Line2`, and `Disconnected` are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 135 | pub enum ActiveInput { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 136 | Line1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 137 | Line2, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 138 | Disconnected, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveInput` 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 variants are never constructed [INFO] [stdout] --> src/victron/ve_bus.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 185 | pub enum Alarm { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 186 | HighTemperature(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 187 | LowBattery(AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | Overload(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 189 | TemperatureSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 190 | VoltageSensor(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 191 | [INFO] [stdout] 192 | LineTemperature(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 193 | LineLowBattery(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 194 | LineOverload(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 195 | LineRipple(Line, AlarmState), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 196 | [INFO] [stdout] 197 | PhaseRotation(AlarmState), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | GridLost(AlarmState), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Alarm` 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: methods `get_state`, `get_mode`, `set_mode`, `get_active_input`, and `get_alarms` are never used [INFO] [stdout] --> src/victron/ve_bus.rs:247:18 [INFO] [stdout] | [INFO] [stdout] 201 | impl VictronBus { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn get_state(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_mode(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub async fn set_mode(&mut self, mode: Mode) -> Result<(), VictronError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | pub async fn get_active_input(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn get_alarms(&mut self) -> Result, VictronError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VictronBattery` is never constructed [INFO] [stdout] --> src/victron/ve_battery.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct VictronBattery { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `capacity` are never used [INFO] [stdout] --> src/victron/ve_battery.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VictronBattery { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 10 | pub async fn new(addr: SocketAddr, unit: u8) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn capacity(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 68 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.89s [INFO] running `Command { std: "docker" "inspect" "a5e43bcaccb81ede180588da8e7e4308cd8d1ee78ba2ae319a3fa19757fac3fd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5e43bcaccb81ede180588da8e7e4308cd8d1ee78ba2ae319a3fa19757fac3fd", kill_on_drop: false }` [INFO] [stdout] a5e43bcaccb81ede180588da8e7e4308cd8d1ee78ba2ae319a3fa19757fac3fd