[INFO] cloning repository https://github.com/jgbyrne/i3status-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jgbyrne/i3status-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fi3status-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fi3status-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9ba0752e9d876858f585d0bcd8457b29044c73d7
[INFO] testing jgbyrne/i3status-rust against 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjgbyrne%2Fi3status-rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jgbyrne/i3status-rust on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/jgbyrne/i3status-rust
[INFO] finished tweaking git repo https://github.com/jgbyrne/i3status-rust
[INFO] tweaked toml for git repo https://github.com/jgbyrne/i3status-rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/jgbyrne/i3status-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" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quoted_printable v0.3.3
[INFO] [stderr]   Downloaded cpuprofiler v0.0.3
[INFO] [stderr]   Downloaded inotify-sys v0.1.2
[INFO] [stderr]   Downloaded base64 v0.1.1
[INFO] [stderr]   Downloaded inotify v0.5.1
[INFO] [stderr]   Downloaded chan v0.1.21
[INFO] [stderr]   Downloaded uuid v0.6.3
[INFO] [stderr]   Downloaded i3ipc v0.8.2
[INFO] [stderr]   Downloaded libpulse-sys v1.5.0
[INFO] [stderr]   Downloaded syn v0.13.7
[INFO] [stderr]   Downloaded maildir v0.1.1
[INFO] [stderr]   Downloaded progress v0.2.0
[INFO] [stderr]   Downloaded mailparse v0.5.1
[INFO] [stderr]   Downloaded terminal_size v0.1.7
[INFO] [stderr]   Downloaded num-traits v0.2.3
[INFO] [stderr]   Downloaded libpulse-binding v2.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1da3d8c53d5d78115ba6030ed457f3b32bf4280656a1640ff737d9002210a136
[INFO] running `Command { std: "docker" "start" "-a" "1da3d8c53d5d78115ba6030ed457f3b32bf4280656a1640ff737d9002210a136", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1da3d8c53d5d78115ba6030ed457f3b32bf4280656a1640ff737d9002210a136", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1da3d8c53d5d78115ba6030ed457f3b32bf4280656a1640ff737d9002210a136", kill_on_drop: false }`
[INFO] [stdout] 1da3d8c53d5d78115ba6030ed457f3b32bf4280656a1640ff737d9002210a136
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 147b02dff5e78cfffbc4b9f9df94948bdb75443c51e9fdaa6ca3791abc9883a1
[INFO] running `Command { std: "docker" "start" "-a" "147b02dff5e78cfffbc4b9f9df94948bdb75443c51e9fdaa6ca3791abc9883a1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.43
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling num-traits v0.2.3
[INFO] [stderr]    Compiling ucd-util v0.1.1
[INFO] [stderr]    Compiling encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling pkg-config v0.3.11
[INFO] [stderr]    Compiling lazy_static v1.0.0
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling cfg-if v0.1.3
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling serde v1.0.53
[INFO] [stderr]    Compiling bitflags v1.0.3
[INFO] [stderr]    Compiling itoa v0.4.1
[INFO] [stderr]    Compiling quoted_printable v0.3.3
[INFO] [stderr]    Compiling encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]    Compiling proc-macro2 v0.3.8
[INFO] [stderr]    Compiling encoding-index-korean v1.20141219.5
[INFO] [stderr]    Compiling regex-syntax v0.5.6
[INFO] [stderr]    Compiling thread_local v0.3.5
[INFO] [stderr]    Compiling encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]    Compiling log v0.4.1
[INFO] [stderr]    Compiling regex v1.0.0
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling nix v0.11.0
[INFO] [stderr]    Compiling base64 v0.1.1
[INFO] [stderr]    Compiling dtoa v0.4.2
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling textwrap v0.9.0
[INFO] [stderr]    Compiling regex-syntax v0.6.0
[INFO] [stderr]    Compiling encoding v0.2.33
[INFO] [stderr]    Compiling byteorder v1.2.2
[INFO] [stderr]    Compiling memchr v2.0.1
[INFO] [stderr]    Compiling rand v0.4.2
[INFO] [stderr]    Compiling time v0.1.40
[INFO] [stderr]    Compiling quote v0.5.2
[INFO] [stderr]    Compiling libdbus-sys v0.2.5
[INFO] [stderr]    Compiling aho-corasick v0.6.4
[INFO] [stderr]    Compiling libpulse-sys v1.5.0
[INFO] [stderr]    Compiling syn v0.13.7
[INFO] [stderr]    Compiling atty v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.36
[INFO] [stderr]    Compiling inotify-sys v0.1.2
[INFO] [stderr]    Compiling ansi_term v0.11.0
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]    Compiling num-iter v0.1.35
[INFO] [stderr]    Compiling chrono v0.4.2
[INFO] [stderr]    Compiling futures v0.1.21
[INFO] [stderr]    Compiling mailparse v0.5.1
[INFO] [stderr]    Compiling dbus v0.6.5
[INFO] [stderr]    Compiling clap v2.31.2
[INFO] [stderr]    Compiling libpulse-binding v2.5.0
[INFO] [stderr]    Compiling maildir v0.1.1
[INFO] [stderr]    Compiling rand v0.3.22
[INFO] [stderr]    Compiling chan v0.1.21
[INFO] [stderr]    Compiling uuid v0.6.3
[INFO] [stderr]    Compiling num-bigint v0.1.43
[INFO] [stderr]    Compiling num-complex v0.1.43
[INFO] [stderr]    Compiling inotify v0.5.1
[INFO] [stderr]    Compiling serde_derive v1.0.53
[INFO] [stderr]    Compiling parse-zoneinfo v0.1.1
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling serde_json v1.0.17
[INFO] [stderr]    Compiling toml v0.4.6
[INFO] [stderr]    Compiling chrono-tz v0.4.1
[INFO] [stderr]    Compiling i3ipc v0.8.2
[INFO] [stderr]    Compiling i3status-rs v0.9.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |             0...100 => Ok(capacity),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:480:25
[INFO] [stdout]     |
[INFO] [stdout] 480 |                     Ok(0...15) => State::Critical,
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:481:26
[INFO] [stdout]     |
[INFO] [stdout] 481 |                     Ok(16...30) => State::Warning,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:482:26
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     Ok(31...60) => State::Info,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:483:26
[INFO] [stdout]     |
[INFO] [stdout] 483 |                     Ok(61...100) => State::Good,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:598:18
[INFO] [stdout]     |
[INFO] [stdout] 598 |                 0...20 => "volume_empty",
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:599:19
[INFO] [stdout]     |
[INFO] [stdout] 599 |                 21...70 => "volume_half",
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 |             0...100 => Ok(brightness),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0...100 => value,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:231:14
[INFO] [stdout]     |
[INFO] [stdout] 231 |             0...19 => self.output.set_icon("backlight_empty"),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:232:15
[INFO] [stdout]     |
[INFO] [stdout] 232 |             20...39 => self.output.set_icon("backlight_partial1"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:233:15
[INFO] [stdout]     |
[INFO] [stdout] 233 |             40...59 => self.output.set_icon("backlight_partial2"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:234:15
[INFO] [stdout]     |
[INFO] [stdout] 234 |             60...79 => self.output.set_icon("backlight_partial3"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:153:28
[INFO] [stdout]     |
[INFO] [stdout] 153 |                         24 ... 68 => "NE".to_string(),
[INFO] [stdout]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:154:28
[INFO] [stdout]     |
[INFO] [stdout] 154 |                         69 ... 113 => "E".to_string(),
[INFO] [stdout]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:155:29
[INFO] [stdout]     |
[INFO] [stdout] 155 |                         114 ... 158 => "SE".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |                         159 ... 203 => "S".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 |                         204 ... 248 => "SW".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:158:29
[INFO] [stdout]     |
[INFO] [stdout] 158 |                         249 ... 293 => "W".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:159:29
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         294 ... 338 => "NW".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:221:18
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 0...50 => State::Good,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:222:19
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 51...70 => State::Idle,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 71...75 => State::Info,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 76...80 => State::Warning,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/blocks/maildir.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |             state = { State::Critical };
[INFO] [stdout]    |                     ^^               ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 77 -             state = { State::Critical };
[INFO] [stdout] 77 +             state = State::Critical;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/blocks/maildir.rs:79:21
[INFO] [stdout]    |
[INFO] [stdout] 79 |             state = { State::Warning };
[INFO] [stdout]    |                     ^^              ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 79 -             state = { State::Warning };
[INFO] [stdout] 79 +             state = State::Warning;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |             );;
[INFO] [stdout]     |               ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:354:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |     device: Box<BatteryDevice>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 354 |     device: Box<dyn BatteryDevice>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:527:17
[INFO] [stdout]     |
[INFO] [stdout] 527 |     device: Box<SoundDevice>,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 527 |     device: Box<dyn SoundDevice>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/util.rs:101:72
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut Block>, config: &Config) -> Result<()> {
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut dyn Block>, config: &Config) -> Result<()> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/block.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn view(&self) -> Vec<&I3BarWidget>;
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn view(&self) -> Vec<&dyn I3BarWidget>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/mod.rs:80:117
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<Block>> {
[INFO] [stdout]    |                                                                                                                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<dyn Block>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/time.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/template.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/load.rs:117:28
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/memory.rs:667:28
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/cpu.rs:166:28
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/music/music.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/music/static_music.rs:210:28
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/mbackend.rs:51:40
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub type PlayerData = arg::Variant<Box<arg::RefArg>>;
[INFO] [stdout]    |                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub type PlayerData = arg::Variant<Box<dyn arg::RefArg>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:49:40
[INFO] [stdout]    |
[INFO] [stdout] 49 |                      current_song: &'w I3BarWidget,
[INFO] [stdout]    |                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |                      current_song: &'w dyn I3BarWidget,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |                    -> Vec<&'w I3BarWidget> {
[INFO] [stdout]    |                               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |                    -> Vec<&'w dyn I3BarWidget> {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:503:28
[INFO] [stdout]     |
[INFO] [stdout] 503 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/custom.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/disk_space.rs:251:28
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/pacman.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/temperature.rs:186:28
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/toggle.rs:108:28
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:667:28
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/speedtest.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/focused_window.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/xrandr.rs:251:28
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/net.rs:491:28
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:240:28
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:235:28
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/uptime.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:248:28
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/maildir.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/networkmanager.rs:221:28
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/errors.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/scheduler.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(blocks: &[Box<Block>]) -> UpdateScheduler {
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(blocks: &[Box<dyn Block>]) -> UpdateScheduler {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/scheduler.rs:75:81
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut Block>) -> Result<()> {
[INFO] [stdout]    |                                                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut dyn Block>) -> Result<()> {
[INFO] [stdout]    |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/de.rs:168:71
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?,
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/de.rs:173:67
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?;
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:55:32
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut elements: Vec<&I3BarWidget> = Vec::new();
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut elements: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:425:25
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let device: Box<BatteryDevice> = if block_config.upower {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let device: Box<dyn BatteryDevice> = if block_config.upower {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/blocks/custom.rs:96:35
[INFO] [stdout]    |
[INFO] [stdout] 96 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/blocks/temperature.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/blocks/toggle.rs:92:35
[INFO] [stdout]    |
[INFO] [stdout] 92 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left`: superseded by `trim_start`
[INFO] [stdout]   --> src/blocks/toggle.rs:94:41
[INFO] [stdout]    |
[INFO] [stdout] 94 |         self.text.set_icon(match output.trim_left() {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 94 |         self.text.set_icon(match output.trim_start() {
[INFO] [stdout]    |                                         ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:638:25
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let device: Box<SoundDevice> = match pulseaudio_device {
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let device: Box<dyn SoundDevice> = match pulseaudio_device {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/speedtest.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut new: Vec<&I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut new: Vec<&dyn I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/net.rs:493:35
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let mut widgets: Vec<&I3BarWidget> = Vec::with_capacity(7);
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let mut widgets: Vec<&dyn I3BarWidget> = Vec::with_capacity(7);
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:249:31
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut widgets: Vec<&I3BarWidget> = Vec::new();
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut widgets: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]   --> src/input.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let slice = input.trim_left_matches(|c| c != '{');
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let slice = input.trim_start_matches(|c| c != '{');
[INFO] [stdout]    |                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/input.rs:49:27
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let slice = slice.trim_right_matches(|c| c != '}');
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let slice = slice.trim_end_matches(|c| c != '}');
[INFO] [stdout]    |                           ~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:175:29
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut blocks: Vec<Box<Block>> = Vec::new();
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut blocks: Vec<Box<dyn Block>> = Vec::new();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:199:45
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut block_map: HashMap<String, &mut Block> = HashMap::new();
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut block_map: HashMap<String, &mut dyn Block> = HashMap::new();
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/blocks/sound.rs:677:29
[INFO] [stdout]     |
[INFO] [stdout] 677 |                         let mut command =            if self.on_click.is_some() {
[INFO] [stdout]     |                             ----^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 122 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 10.54s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24, syn v0.13.7
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "147b02dff5e78cfffbc4b9f9df94948bdb75443c51e9fdaa6ca3791abc9883a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "147b02dff5e78cfffbc4b9f9df94948bdb75443c51e9fdaa6ca3791abc9883a1", kill_on_drop: false }`
[INFO] [stdout] 147b02dff5e78cfffbc4b9f9df94948bdb75443c51e9fdaa6ca3791abc9883a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f4fdbc73a429129de8686a412d0e3022f358802e22043ef8740e7520379e3130
[INFO] running `Command { std: "docker" "start" "-a" "f4fdbc73a429129de8686a412d0e3022f358802e22043ef8740e7520379e3130", kill_on_drop: false }`
[INFO] [stderr]    Compiling i3status-rs v0.9.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |             0...100 => Ok(capacity),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:480:25
[INFO] [stdout]     |
[INFO] [stdout] 480 |                     Ok(0...15) => State::Critical,
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:481:26
[INFO] [stdout]     |
[INFO] [stdout] 481 |                     Ok(16...30) => State::Warning,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:482:26
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     Ok(31...60) => State::Info,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:483:26
[INFO] [stdout]     |
[INFO] [stdout] 483 |                     Ok(61...100) => State::Good,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:598:18
[INFO] [stdout]     |
[INFO] [stdout] 598 |                 0...20 => "volume_empty",
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:599:19
[INFO] [stdout]     |
[INFO] [stdout] 599 |                 21...70 => "volume_half",
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 |             0...100 => Ok(brightness),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0...100 => value,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:231:14
[INFO] [stdout]     |
[INFO] [stdout] 231 |             0...19 => self.output.set_icon("backlight_empty"),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:232:15
[INFO] [stdout]     |
[INFO] [stdout] 232 |             20...39 => self.output.set_icon("backlight_partial1"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:233:15
[INFO] [stdout]     |
[INFO] [stdout] 233 |             40...59 => self.output.set_icon("backlight_partial2"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:234:15
[INFO] [stdout]     |
[INFO] [stdout] 234 |             60...79 => self.output.set_icon("backlight_partial3"),
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:153:28
[INFO] [stdout]     |
[INFO] [stdout] 153 |                         24 ... 68 => "NE".to_string(),
[INFO] [stdout]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:154:28
[INFO] [stdout]     |
[INFO] [stdout] 154 |                         69 ... 113 => "E".to_string(),
[INFO] [stdout]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:155:29
[INFO] [stdout]     |
[INFO] [stdout] 155 |                         114 ... 158 => "SE".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |                         159 ... 203 => "S".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 |                         204 ... 248 => "SW".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:158:29
[INFO] [stdout]     |
[INFO] [stdout] 158 |                         249 ... 293 => "W".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:159:29
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         294 ... 338 => "NW".to_string(),
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:221:18
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 0...50 => State::Good,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:222:19
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 51...70 => State::Idle,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 71...75 => State::Info,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 76...80 => State::Warning,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/blocks/maildir.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |             state = { State::Critical };
[INFO] [stdout]    |                     ^^               ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 77 -             state = { State::Critical };
[INFO] [stdout] 77 +             state = State::Critical;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/blocks/maildir.rs:79:21
[INFO] [stdout]    |
[INFO] [stdout] 79 |             state = { State::Warning };
[INFO] [stdout]    |                     ^^              ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 79 -             state = { State::Warning };
[INFO] [stdout] 79 +             state = State::Warning;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |             );;
[INFO] [stdout]     |               ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/blocks/sound.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | / lazy_static! {
[INFO] [stdout] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stdout] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stdout] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stdout] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/icons.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stdout] 5   | |         "" => "",
[INFO] [stdout] 6   | |         "time" => " ",
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |     };
[INFO] [stdout] 178 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/themes.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | / lazy_static! {
[INFO] [stdout] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stdout] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stdout] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |     };
[INFO] [stdout] 201 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:354:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |     device: Box<BatteryDevice>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 354 |     device: Box<dyn BatteryDevice>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:527:17
[INFO] [stdout]     |
[INFO] [stdout] 527 |     device: Box<SoundDevice>,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 527 |     device: Box<dyn SoundDevice>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/util.rs:101:72
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut Block>, config: &Config) -> Result<()> {
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut dyn Block>, config: &Config) -> Result<()> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/block.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn view(&self) -> Vec<&I3BarWidget>;
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn view(&self) -> Vec<&dyn I3BarWidget>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/mod.rs:80:117
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<Block>> {
[INFO] [stdout]    |                                                                                                                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<dyn Block>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/time.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/template.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/load.rs:117:28
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/memory.rs:667:28
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/cpu.rs:166:28
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/music/music.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/music/static_music.rs:210:28
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/mbackend.rs:51:40
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub type PlayerData = arg::Variant<Box<arg::RefArg>>;
[INFO] [stdout]    |                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub type PlayerData = arg::Variant<Box<dyn arg::RefArg>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:49:40
[INFO] [stdout]    |
[INFO] [stdout] 49 |                      current_song: &'w I3BarWidget,
[INFO] [stdout]    |                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |                      current_song: &'w dyn I3BarWidget,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |                    -> Vec<&'w I3BarWidget> {
[INFO] [stdout]    |                               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |                    -> Vec<&'w dyn I3BarWidget> {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:503:28
[INFO] [stdout]     |
[INFO] [stdout] 503 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/custom.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/disk_space.rs:251:28
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/pacman.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/temperature.rs:186:28
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/toggle.rs:108:28
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:667:28
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/speedtest.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/focused_window.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/xrandr.rs:251:28
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/net.rs:491:28
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/backlight.rs:240:28
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/weather.rs:235:28
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/uptime.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:248:28
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/maildir.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/networkmanager.rs:221:28
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stdout]     |                            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/errors.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/scheduler.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(blocks: &[Box<Block>]) -> UpdateScheduler {
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(blocks: &[Box<dyn Block>]) -> UpdateScheduler {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/scheduler.rs:75:81
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut Block>) -> Result<()> {
[INFO] [stdout]    |                                                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut dyn Block>) -> Result<()> {
[INFO] [stdout]    |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/de.rs:168:71
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?,
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/de.rs:173:67
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?;
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/blocks/music/utils.rs:55:32
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut elements: Vec<&I3BarWidget> = Vec::new();
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut elements: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/battery.rs:425:25
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let device: Box<BatteryDevice> = if block_config.upower {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let device: Box<dyn BatteryDevice> = if block_config.upower {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/blocks/custom.rs:96:35
[INFO] [stdout]    |
[INFO] [stdout] 96 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/blocks/temperature.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/blocks/toggle.rs:92:35
[INFO] [stdout]    |
[INFO] [stdout] 92 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left`: superseded by `trim_start`
[INFO] [stdout]   --> src/blocks/toggle.rs:94:41
[INFO] [stdout]    |
[INFO] [stdout] 94 |         self.text.set_icon(match output.trim_left() {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 94 |         self.text.set_icon(match output.trim_start() {
[INFO] [stdout]    |                                         ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/sound.rs:638:25
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let device: Box<SoundDevice> = match pulseaudio_device {
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let device: Box<dyn SoundDevice> = match pulseaudio_device {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/speedtest.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut new: Vec<&I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut new: Vec<&dyn I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/net.rs:493:35
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let mut widgets: Vec<&I3BarWidget> = Vec::with_capacity(7);
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let mut widgets: Vec<&dyn I3BarWidget> = Vec::with_capacity(7);
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/nvidia_gpu.rs:249:31
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut widgets: Vec<&I3BarWidget> = Vec::new();
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut widgets: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/blocks/mod.rs:65:90
[INFO] [stdout]     |
[INFO] [stdout] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stdout]     |                                                                                            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stdout] 82  | |             "time" => Time,
[INFO] [stdout] 83  | |             "template" => Template,
[INFO] [stdout] 84  | |             "music" => Music,
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |             "networkmanager" => NetworkManager
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stdout]     |                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]   --> src/input.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let slice = input.trim_left_matches(|c| c != '{');
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let slice = input.trim_start_matches(|c| c != '{');
[INFO] [stdout]    |                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/input.rs:49:27
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let slice = slice.trim_right_matches(|c| c != '}');
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let slice = slice.trim_end_matches(|c| c != '}');
[INFO] [stdout]    |                           ~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:175:29
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut blocks: Vec<Box<Block>> = Vec::new();
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut blocks: Vec<Box<dyn Block>> = Vec::new();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:199:45
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut block_map: HashMap<String, &mut Block> = HashMap::new();
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut block_map: HashMap<String, &mut dyn Block> = HashMap::new();
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/blocks/sound.rs:677:29
[INFO] [stdout]     |
[INFO] [stdout] 677 |                         let mut command =            if self.on_click.is_some() {
[INFO] [stdout]     |                             ----^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 122 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.53s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24, syn v0.13.7
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "f4fdbc73a429129de8686a412d0e3022f358802e22043ef8740e7520379e3130", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f4fdbc73a429129de8686a412d0e3022f358802e22043ef8740e7520379e3130", kill_on_drop: false }`
[INFO] [stdout] f4fdbc73a429129de8686a412d0e3022f358802e22043ef8740e7520379e3130
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ede7b1e3e67e5cbc891a8b550925e5083e28fd598deab304d4b792a8e222e067
[INFO] running `Command { std: "docker" "start" "-a" "ede7b1e3e67e5cbc891a8b550925e5083e28fd598deab304d4b792a8e222e067", kill_on_drop: false }`
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:124:14
[INFO] [stderr]     |
[INFO] [stderr] 124 |             0...100 => Ok(capacity),
[INFO] [stderr]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:480:25
[INFO] [stderr]     |
[INFO] [stderr] 480 |                     Ok(0...15) => State::Critical,
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:481:26
[INFO] [stderr]     |
[INFO] [stderr] 481 |                     Ok(16...30) => State::Warning,
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:482:26
[INFO] [stderr]     |
[INFO] [stderr] 482 |                     Ok(31...60) => State::Info,
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:483:26
[INFO] [stderr]     |
[INFO] [stderr] 483 |                     Ok(61...100) => State::Good,
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/sound.rs:598:18
[INFO] [stderr]     |
[INFO] [stderr] 598 |                 0...20 => "volume_empty",
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/sound.rs:599:19
[INFO] [stderr]     |
[INFO] [stderr] 599 |                 21...70 => "volume_half",
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:112:14
[INFO] [stderr]     |
[INFO] [stderr] 112 |             0...100 => Ok(brightness),
[INFO] [stderr]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:130:14
[INFO] [stderr]     |
[INFO] [stderr] 130 |             0...100 => value,
[INFO] [stderr]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:231:14
[INFO] [stderr]     |
[INFO] [stderr] 231 |             0...19 => self.output.set_icon("backlight_empty"),
[INFO] [stderr]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:232:15
[INFO] [stderr]     |
[INFO] [stderr] 232 |             20...39 => self.output.set_icon("backlight_partial1"),
[INFO] [stderr]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:233:15
[INFO] [stderr]     |
[INFO] [stderr] 233 |             40...59 => self.output.set_icon("backlight_partial2"),
[INFO] [stderr]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:234:15
[INFO] [stderr]     |
[INFO] [stderr] 234 |             60...79 => self.output.set_icon("backlight_partial3"),
[INFO] [stderr]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:153:28
[INFO] [stderr]     |
[INFO] [stderr] 153 |                         24 ... 68 => "NE".to_string(),
[INFO] [stderr]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:154:28
[INFO] [stderr]     |
[INFO] [stderr] 154 |                         69 ... 113 => "E".to_string(),
[INFO] [stderr]     |                            ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:155:29
[INFO] [stderr]     |
[INFO] [stderr] 155 |                         114 ... 158 => "SE".to_string(),
[INFO] [stderr]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:156:29
[INFO] [stderr]     |
[INFO] [stderr] 156 |                         159 ... 203 => "S".to_string(),
[INFO] [stderr]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:157:29
[INFO] [stderr]     |
[INFO] [stderr] 157 |                         204 ... 248 => "SW".to_string(),
[INFO] [stderr]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:158:29
[INFO] [stderr]     |
[INFO] [stderr] 158 |                         249 ... 293 => "W".to_string(),
[INFO] [stderr]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:159:29
[INFO] [stderr]     |
[INFO] [stderr] 159 |                         294 ... 338 => "NW".to_string(),
[INFO] [stderr]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:221:18
[INFO] [stderr]     |
[INFO] [stderr] 221 |                 0...50 => State::Good,
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:222:19
[INFO] [stderr]     |
[INFO] [stderr] 222 |                 51...70 => State::Idle,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:223:19
[INFO] [stderr]     |
[INFO] [stderr] 223 |                 71...75 => State::Info,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:224:19
[INFO] [stderr]     |
[INFO] [stderr] 224 |                 76...80 => State::Warning,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/blocks/maildir.rs:77:21
[INFO] [stderr]    |
[INFO] [stderr] 77 |             state = { State::Critical };
[INFO] [stderr]    |                     ^^               ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 77 -             state = { State::Critical };
[INFO] [stderr] 77 +             state = State::Critical;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/blocks/maildir.rs:79:21
[INFO] [stderr]    |
[INFO] [stderr] 79 |             state = { State::Warning };
[INFO] [stderr]    |                     ^^              ^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 79 -             state = { State::Warning };
[INFO] [stderr] 79 +             state = State::Warning;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/main.rs:101:15
[INFO] [stderr]     |
[INFO] [stderr] 101 |             );;
[INFO] [stderr]     |               ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/blocks/sound.rs:205:1
[INFO] [stderr]     |
[INFO] [stderr] 205 | / lazy_static! {
[INFO] [stderr] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stderr] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stderr] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stderr] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stderr] 210 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/blocks/sound.rs:205:1
[INFO] [stderr]     |
[INFO] [stderr] 205 | / lazy_static! {
[INFO] [stderr] 206 | |     static ref PULSEAUDIO_CLIENT: Result<PulseAudioClient> = PulseAudioClient::new();
[INFO] [stderr] 207 | |     static ref PULSEAUDIO_EVENT_LISTENER: Mutex<HashMap<String, Sender<Task>>> = Mutex::new(HashMap::new());
[INFO] [stderr] 208 | |     static ref PULSEAUDIO_DEFAULT_SINK: Mutex<String> = Mutex::new("@DEFAULT_SINK@".into());
[INFO] [stderr] 209 | |     static ref PULSEAUDIO_SINKS: Mutex<HashMap<String, PulseAudioSinkInfo>> = Mutex::new(HashMap::new());
[INFO] [stderr] 210 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/icons.rs:3:1
[INFO] [stderr]     |
[INFO] [stderr] 3   | / lazy_static! {
[INFO] [stderr] 4   | |     pub static ref NONE: Map<String, String> = map_to_owned! {
[INFO] [stderr] 5   | |         "" => "",
[INFO] [stderr] 6   | |         "time" => " ",
[INFO] [stderr] ...   |
[INFO] [stderr] 177 | |     };
[INFO] [stderr] 178 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/themes.rs:3:1
[INFO] [stderr]     |
[INFO] [stderr] 3   | / lazy_static! {
[INFO] [stderr] 4   | |     pub static ref SLICK: Theme = Theme {
[INFO] [stderr] 5   | |         idle_bg: "#424242".to_owned(),
[INFO] [stderr] 6   | |         idle_fg: "#ffffff".to_owned(),
[INFO] [stderr] ...   |
[INFO] [stderr] 200 | |     };
[INFO] [stderr] 201 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:354:17
[INFO] [stderr]     |
[INFO] [stderr] 354 |     device: Box<BatteryDevice>,
[INFO] [stderr]     |                 ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 354 |     device: Box<dyn BatteryDevice>,
[INFO] [stderr]     |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/sound.rs:527:17
[INFO] [stderr]     |
[INFO] [stderr] 527 |     device: Box<SoundDevice>,
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 527 |     device: Box<dyn SoundDevice>,
[INFO] [stderr]     |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/util.rs:101:72
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut Block>, config: &Config) -> Result<()> {
[INFO] [stderr]     |                                                                        ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub fn print_blocks(order: &[String], block_map: &HashMap<String, &mut dyn Block>, config: &Config) -> Result<()> {
[INFO] [stderr]     |                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/block.rs:15:28
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn view(&self) -> Vec<&I3BarWidget>;
[INFO] [stderr]    |                            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn view(&self) -> Vec<&dyn I3BarWidget>;
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/mod.rs:80:117
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<Block>> {
[INFO] [stderr]    |                                                                                                                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn create_block(name: &str, block_config: Value, config: Config, tx_update_request: Sender<Task>) -> Result<Box<dyn Block>> {
[INFO] [stderr]    |                                                                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/time.rs:112:28
[INFO] [stderr]     |
[INFO] [stderr] 112 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 112 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/template.rs:60:28
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]    |                            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/load.rs:117:28
[INFO] [stderr]     |
[INFO] [stderr] 117 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 117 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/memory.rs:667:28
[INFO] [stderr]     |
[INFO] [stderr] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/cpu.rs:166:28
[INFO] [stderr]     |
[INFO] [stderr] 166 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 166 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/music/music.rs:169:28
[INFO] [stderr]     |
[INFO] [stderr] 169 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 169 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/music/static_music.rs:210:28
[INFO] [stderr]     |
[INFO] [stderr] 210 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 210 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/music/mbackend.rs:51:40
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub type PlayerData = arg::Variant<Box<arg::RefArg>>;
[INFO] [stderr]    |                                        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub type PlayerData = arg::Variant<Box<dyn arg::RefArg>>;
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/music/utils.rs:49:40
[INFO] [stderr]    |
[INFO] [stderr] 49 |                      current_song: &'w I3BarWidget,
[INFO] [stderr]    |                                        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 49 |                      current_song: &'w dyn I3BarWidget,
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/music/utils.rs:53:31
[INFO] [stderr]    |
[INFO] [stderr] 53 |                    -> Vec<&'w I3BarWidget> {
[INFO] [stderr]    |                               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 53 |                    -> Vec<&'w dyn I3BarWidget> {
[INFO] [stderr]    |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:503:28
[INFO] [stderr]     |
[INFO] [stderr] 503 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 503 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/custom.rs:103:28
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/disk_space.rs:251:28
[INFO] [stderr]     |
[INFO] [stderr] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/pacman.rs:151:28
[INFO] [stderr]     |
[INFO] [stderr] 151 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 151 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/temperature.rs:186:28
[INFO] [stderr]     |
[INFO] [stderr] 186 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 186 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/toggle.rs:108:28
[INFO] [stderr]     |
[INFO] [stderr] 108 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 108 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/sound.rs:667:28
[INFO] [stderr]     |
[INFO] [stderr] 667 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 667 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/speedtest.rs:172:28
[INFO] [stderr]     |
[INFO] [stderr] 172 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 172 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/focused_window.rs:132:28
[INFO] [stderr]     |
[INFO] [stderr] 132 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 132 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/xrandr.rs:251:28
[INFO] [stderr]     |
[INFO] [stderr] 251 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 251 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/net.rs:491:28
[INFO] [stderr]     |
[INFO] [stderr] 491 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 491 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/backlight.rs:240:28
[INFO] [stderr]     |
[INFO] [stderr] 240 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 240 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/weather.rs:235:28
[INFO] [stderr]     |
[INFO] [stderr] 235 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 235 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/uptime.rs:114:28
[INFO] [stderr]     |
[INFO] [stderr] 114 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 114 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:248:28
[INFO] [stderr]     |
[INFO] [stderr] 248 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 248 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/maildir.rs:86:28
[INFO] [stderr]    |
[INFO] [stderr] 86 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]    |                            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 86 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/networkmanager.rs:221:28
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn view(&self) -> Vec<&I3BarWidget> {
[INFO] [stderr]     |                            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn view(&self) -> Vec<&dyn I3BarWidget> {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/errors.rs:116:32
[INFO] [stderr]     |
[INFO] [stderr] 116 |     fn cause(&self) -> Option<&StdError> {
[INFO] [stderr]     |                                ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 116 |     fn cause(&self) -> Option<&dyn StdError> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/scheduler.rs:46:30
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(blocks: &[Box<Block>]) -> UpdateScheduler {
[INFO] [stderr]    |                              ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(blocks: &[Box<dyn Block>]) -> UpdateScheduler {
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/scheduler.rs:75:81
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut Block>) -> Result<()> {
[INFO] [stderr]    |                                                                                 ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub fn do_scheduled_updates(&mut self, block_map: &mut HashMap<String, &mut dyn Block>) -> Result<()> {
[INFO] [stderr]    |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/de.rs:168:71
[INFO] [stderr]     |
[INFO] [stderr] 168 |                     .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?,
[INFO] [stderr]     |                                                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/de.rs:173:67
[INFO] [stderr]     |
[INFO] [stderr] 173 |                 .map_err(|e: toml::de::Error| de::Error::custom(e.description()))?;
[INFO] [stderr]     |                                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/blocks/music/utils.rs:55:32
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let mut elements: Vec<&I3BarWidget> = Vec::new();
[INFO] [stderr]    |                                ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let mut elements: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/battery.rs:425:25
[INFO] [stderr]     |
[INFO] [stderr] 425 |         let device: Box<BatteryDevice> = if block_config.upower {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 425 |         let device: Box<dyn BatteryDevice> = if block_config.upower {
[INFO] [stderr]     |                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/blocks/custom.rs:96:35
[INFO] [stderr]    |
[INFO] [stderr] 96 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stderr]    |                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/blocks/temperature.rs:120:35
[INFO] [stderr]     |
[INFO] [stderr] 120 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stderr]     |                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/blocks/toggle.rs:92:35
[INFO] [stderr]    |
[INFO] [stderr] 92 |             .unwrap_or_else(|e| e.description().to_owned());
[INFO] [stderr]    |                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_left`: superseded by `trim_start`
[INFO] [stderr]   --> src/blocks/toggle.rs:94:41
[INFO] [stderr]    |
[INFO] [stderr] 94 |         self.text.set_icon(match output.trim_left() {
[INFO] [stderr]    |                                         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 94 |         self.text.set_icon(match output.trim_start() {
[INFO] [stderr]    |                                         ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/sound.rs:638:25
[INFO] [stderr]     |
[INFO] [stderr] 638 |         let device: Box<SoundDevice> = match pulseaudio_device {
[INFO] [stderr]     |                         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 638 |         let device: Box<dyn SoundDevice> = match pulseaudio_device {
[INFO] [stderr]     |                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/speedtest.rs:173:27
[INFO] [stderr]     |
[INFO] [stderr] 173 |         let mut new: Vec<&I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 173 |         let mut new: Vec<&dyn I3BarWidget> = Vec::with_capacity(self.text.len());
[INFO] [stderr]     |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/net.rs:493:35
[INFO] [stderr]     |
[INFO] [stderr] 493 |             let mut widgets: Vec<&I3BarWidget> = Vec::with_capacity(7);
[INFO] [stderr]     |                                   ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 493 |             let mut widgets: Vec<&dyn I3BarWidget> = Vec::with_capacity(7);
[INFO] [stderr]     |                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/nvidia_gpu.rs:249:31
[INFO] [stderr]     |
[INFO] [stderr] 249 |         let mut widgets: Vec<&I3BarWidget> = Vec::new();
[INFO] [stderr]     |                               ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 249 |         let mut widgets: Vec<&dyn I3BarWidget> = Vec::new();
[INFO] [stderr]     |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/blocks/mod.rs:65:90
[INFO] [stderr]     |
[INFO] [stderr] 65  |           Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<Block>)
[INFO] [stderr]     |                                                                                            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81  | /     blocks!(name, block_config, config, tx_update_request;
[INFO] [stderr] 82  | |             "time" => Time,
[INFO] [stderr] 83  | |             "template" => Template,
[INFO] [stderr] 84  | |             "music" => Music,
[INFO] [stderr] ...   |
[INFO] [stderr] 105 | |             "networkmanager" => NetworkManager
[INFO] [stderr] 106 | |     )
[INFO] [stderr]     | |_____- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `block` which comes from the expansion of the macro `blocks` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 65  |         Ok(Box::new($block_type::new(block_config, $config, $tx_update_request)?) as Box<dyn Block>)
[INFO] [stderr]     |                                                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stderr]   --> src/input.rs:48:27
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let slice = input.trim_left_matches(|c| c != '{');
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let slice = input.trim_start_matches(|c| c != '{');
[INFO] [stderr]    |                           ~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]   --> src/input.rs:49:27
[INFO] [stderr]    |
[INFO] [stderr] 49 |         let slice = slice.trim_right_matches(|c| c != '}');
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 49 |         let slice = slice.trim_end_matches(|c| c != '}');
[INFO] [stderr]    |                           ~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:175:29
[INFO] [stderr]     |
[INFO] [stderr] 175 |     let mut blocks: Vec<Box<Block>> = Vec::new();
[INFO] [stderr]     |                             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 175 |     let mut blocks: Vec<Box<dyn Block>> = Vec::new();
[INFO] [stderr]     |                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/main.rs:199:45
[INFO] [stderr]     |
[INFO] [stderr] 199 |     let mut block_map: HashMap<String, &mut Block> = HashMap::new();
[INFO] [stderr]     |                                             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 199 |     let mut block_map: HashMap<String, &mut dyn Block> = HashMap::new();
[INFO] [stderr]     |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/blocks/sound.rs:677:29
[INFO] [stderr]     |
[INFO] [stderr] 677 |                         let mut command =            if self.on_click.is_some() {
[INFO] [stderr]     |                             ----^^^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `i3status-rs` (bin "i3status-rs" test) generated 122 warnings (38 duplicates) (run `cargo fix --bin "i3status-rs" --tests` to apply 74 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24, syn v0.13.7
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/i3status_rs-5f63018eb35e5cad)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ede7b1e3e67e5cbc891a8b550925e5083e28fd598deab304d4b792a8e222e067", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ede7b1e3e67e5cbc891a8b550925e5083e28fd598deab304d4b792a8e222e067", kill_on_drop: false }`
[INFO] [stdout] ede7b1e3e67e5cbc891a8b550925e5083e28fd598deab304d4b792a8e222e067
