[INFO] crate circadian 0.6.0 is already in cache [INFO] extracting crate circadian 0.6.0 into work/ex/clippy-test-run/sources/stable/reg/circadian/0.6.0 [INFO] extracting crate circadian 0.6.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/circadian/0.6.0 [INFO] validating manifest of circadian-0.6.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of circadian-0.6.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing circadian-0.6.0 [INFO] finished frobbing circadian-0.6.0 [INFO] frobbed toml for circadian-0.6.0 written to work/ex/clippy-test-run/sources/stable/reg/circadian/0.6.0/Cargo.toml [INFO] started frobbing circadian-0.6.0 [INFO] finished frobbing circadian-0.6.0 [INFO] frobbed toml for circadian-0.6.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/circadian/0.6.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting circadian-0.6.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/circadian/0.6.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] d093c1db9a89a6d0a6f534b930387949a10e32f60a53f762496e8cc771cc6980 [INFO] running `"docker" "start" "-a" "d093c1db9a89a6d0a6f534b930387949a10e32f60a53f762496e8cc771cc6980"` [INFO] [stderr] Checking circadian v0.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:172:21 [INFO] [stderr] | [INFO] [stderr] 172 | let _ = write!(f, "{:<16}: {}\n", name, s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:174:17 [INFO] [stderr] | [INFO] [stderr] 174 | let _ = write!(f, "{:<16}: {}\n", "Wake block", self.wake_remain); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | let _ = write!(f, "{:<16}: {}\n", name, var); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | let _ = write!(f, "{:<16}: {}\n", "Idle (min)", self.min_idle); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | let _ = write!(f, "{:<16}: {}\n", "Idle target", self.idle_target); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | let _ = write!(f, "{:<16}: {}\n", "Until idle", self.idle_remain); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | let _ = write!(f, "{:<16}: {}\n", "IDLE?", self.is_idle); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:228:21 [INFO] [stderr] | [INFO] [stderr] 228 | let _ = write!(f, "{:<16}: {}\n", name, s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | let _ = write!(f, "{:<16}: {}\n", "BLOCKED?", self.is_blocked); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:598:9 [INFO] [stderr] | [INFO] [stderr] 598 | wake_remain: wake_remain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `wake_remain` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:599:9 [INFO] [stderr] | [INFO] [stderr] 599 | tty_idle: tty_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tty_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:601:9 [INFO] [stderr] | [INFO] [stderr] 601 | x11_idle: x11_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `x11_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:603:9 [INFO] [stderr] | [INFO] [stderr] 603 | min_idle: min_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `min_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:605:9 [INFO] [stderr] | [INFO] [stderr] 605 | idle_remain: idle_remain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `idle_remain` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:636:9 [INFO] [stderr] | [INFO] [stderr] 636 | cpu_load: cpu_load, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cpu_load` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:637:9 [INFO] [stderr] | [INFO] [stderr] 637 | cpu_load_enabled: cpu_load_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cpu_load_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:638:9 [INFO] [stderr] | [INFO] [stderr] 638 | ssh: ssh, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ssh` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:639:9 [INFO] [stderr] | [INFO] [stderr] 639 | ssh_enabled: ssh_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ssh_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | smb: smb, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `smb` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:641:9 [INFO] [stderr] | [INFO] [stderr] 641 | smb_enabled: smb_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `smb_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:642:9 [INFO] [stderr] | [INFO] [stderr] 642 | audio: audio, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `audio` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:643:9 [INFO] [stderr] | [INFO] [stderr] 643 | audio_enabled: audio_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `audio_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:644:9 [INFO] [stderr] | [INFO] [stderr] 644 | procs: procs, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `procs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:645:9 [INFO] [stderr] | [INFO] [stderr] 645 | procs_enabled: procs_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `procs_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:172:21 [INFO] [stderr] | [INFO] [stderr] 172 | let _ = write!(f, "{:<16}: {}\n", name, s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:174:17 [INFO] [stderr] | [INFO] [stderr] 174 | let _ = write!(f, "{:<16}: {}\n", "Wake block", self.wake_remain); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | let _ = write!(f, "{:<16}: {}\n", name, var); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | let _ = write!(f, "{:<16}: {}\n", "Idle (min)", self.min_idle); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | let _ = write!(f, "{:<16}: {}\n", "Idle target", self.idle_target); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | let _ = write!(f, "{:<16}: {}\n", "Until idle", self.idle_remain); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | let _ = write!(f, "{:<16}: {}\n", "IDLE?", self.is_idle); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:228:21 [INFO] [stderr] | [INFO] [stderr] 228 | let _ = write!(f, "{:<16}: {}\n", name, s); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | let _ = write!(f, "{:<16}: {}\n", "BLOCKED?", self.is_blocked); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:598:9 [INFO] [stderr] | [INFO] [stderr] 598 | wake_remain: wake_remain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `wake_remain` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:599:9 [INFO] [stderr] | [INFO] [stderr] 599 | tty_idle: tty_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tty_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:601:9 [INFO] [stderr] | [INFO] [stderr] 601 | x11_idle: x11_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `x11_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:603:9 [INFO] [stderr] | [INFO] [stderr] 603 | min_idle: min_idle, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `min_idle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:605:9 [INFO] [stderr] | [INFO] [stderr] 605 | idle_remain: idle_remain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `idle_remain` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:636:9 [INFO] [stderr] | [INFO] [stderr] 636 | cpu_load: cpu_load, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cpu_load` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:637:9 [INFO] [stderr] | [INFO] [stderr] 637 | cpu_load_enabled: cpu_load_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cpu_load_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:638:9 [INFO] [stderr] | [INFO] [stderr] 638 | ssh: ssh, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ssh` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:639:9 [INFO] [stderr] | [INFO] [stderr] 639 | ssh_enabled: ssh_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ssh_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | smb: smb, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `smb` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:641:9 [INFO] [stderr] | [INFO] [stderr] 641 | smb_enabled: smb_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `smb_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:642:9 [INFO] [stderr] | [INFO] [stderr] 642 | audio: audio, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `audio` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:643:9 [INFO] [stderr] | [INFO] [stderr] 643 | audio_enabled: audio_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `audio_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:644:9 [INFO] [stderr] | [INFO] [stderr] 644 | procs: procs, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `procs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:645:9 [INFO] [stderr] | [INFO] [stderr] 645 | procs_enabled: procs_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `procs_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Min` [INFO] [stderr] --> src/main.rs:125:1 [INFO] [stderr] | [INFO] [stderr] 125 | / enum CpuHistory { [INFO] [stderr] 126 | | Min1, [INFO] [stderr] 127 | | Min5, [INFO] [stderr] 128 | | Min15 [INFO] [stderr] 129 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Min` [INFO] [stderr] --> src/main.rs:125:1 [INFO] [stderr] | [INFO] [stderr] 125 | / enum CpuHistory { [INFO] [stderr] 126 | | Min1, [INFO] [stderr] 127 | | Min5, [INFO] [stderr] 128 | | Min15 [INFO] [stderr] 129 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:167:27 [INFO] [stderr] | [INFO] [stderr] 167 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 168 | | true => "*", [INFO] [stderr] 169 | | _ => "", [INFO] [stderr] 170 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:180:27 [INFO] [stderr] | [INFO] [stderr] 180 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 181 | | true => "*", [INFO] [stderr] 182 | | _ => "", [INFO] [stderr] 183 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:223:27 [INFO] [stderr] | [INFO] [stderr] 223 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 224 | | true => "*", [INFO] [stderr] 225 | | _ => "", [INFO] [stderr] 226 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | / match Command::new(cmd) [INFO] [stderr] 255 | | .stdout(Stdio::null()) [INFO] [stderr] 256 | | .stderr(Stdio::null()) [INFO] [stderr] 257 | | .status() { [INFO] [stderr] 258 | | Ok(_) => true, [INFO] [stderr] 259 | | Err(_) => false, [INFO] [stderr] 260 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 254 | Command::new(cmd) [INFO] [stderr] 255 | .stdout(Stdio::null()) [INFO] [stderr] 256 | .stderr(Stdio::null()) [INFO] [stderr] 257 | .status().is_ok() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:273:46 [INFO] [stderr] | [INFO] [stderr] 273 | let parts: Vec = time_str.split(".") [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:279:46 [INFO] [stderr] | [INFO] [stderr] 279 | let parts: Vec = time_str.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:287:46 [INFO] [stderr] | [INFO] [stderr] 287 | let parts: Vec = time_str.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:307:10 [INFO] [stderr] | [INFO] [stderr] 307 | .ok_or(CircadianError("w command has no output".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("w command has no output".into()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:314:16 [INFO] [stderr] | [INFO] [stderr] 314 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:312:32 [INFO] [stderr] | [INFO] [stderr] 312 | let idle_times: Vec = String::from_utf8(awk_output.stdout) [INFO] [stderr] | ________________________________^ [INFO] [stderr] 313 | | .unwrap_or(String::new()) [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(awk_output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:315:21 [INFO] [stderr] | [INFO] [stderr] 315 | .filter(|t| t.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!t.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:341:14 [INFO] [stderr] | [INFO] [stderr] 341 | .ok_or(CircadianError("w command has no output".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("w command has no output".into()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:347:24 [INFO] [stderr] | [INFO] [stderr] 347 | let user_str = String::from_utf8(output.stdout) [INFO] [stderr] | ________________________^ [INFO] [stderr] 348 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:349:35 [INFO] [stderr] | [INFO] [stderr] 349 | let user = user_str.split("\n").next().unwrap_or("root"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:354:23 [INFO] [stderr] | [INFO] [stderr] 354 | let mut uid = String::from_utf8(output.stdout) [INFO] [stderr] | _______________________^ [INFO] [stderr] 355 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:363:28 [INFO] [stderr] | [INFO] [stderr] 363 | let mut idle_str = String::from_utf8(output.stdout) [INFO] [stderr] | ____________________________^ [INFO] [stderr] 364 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:395:22 [INFO] [stderr] | [INFO] [stderr] 395 | let uptime_str = String::from_utf8(output.stdout) [INFO] [stderr] | ______________________^ [INFO] [stderr] 396 | | .unwrap_or(String::new()); [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:397:47 [INFO] [stderr] | [INFO] [stderr] 397 | let columns: Vec<&str> = uptime_str.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:398:32 [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] | ________________________________^ [INFO] [stderr] 399 | | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] 400 | | .rev() [INFO] [stderr] 401 | | .map(|x| *x) [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] 399 | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] 400 | .rev().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:398:32 [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] | ________________________________^ [INFO] [stderr] 399 | | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] 399 | .rev().take(3).cloned().collect::>().iter() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:402:21 [INFO] [stderr] | [INFO] [stderr] 402 | .filter(|x| x.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:425:22 [INFO] [stderr] | [INFO] [stderr] 425 | let count: u32 = String::from_utf8(output.to_vec()) [INFO] [stderr] | ______________________^ [INFO] [stderr] 426 | | .unwrap_or(String::new()).parse::()?; [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.to_vec()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:438:10 [INFO] [stderr] | [INFO] [stderr] 438 | .ok_or(CircadianError("netstat command has no output".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("netstat command has no output".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:445:10 [INFO] [stderr] | [INFO] [stderr] 445 | .ok_or(CircadianError("netstat command has no connections".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("netstat command has no connections".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:455:18 [INFO] [stderr] | [INFO] [stderr] 455 | let output = String::from_utf8(output.stdout) [INFO] [stderr] | __________________^ [INFO] [stderr] 456 | | .unwrap_or(String::new()); [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:458:16 [INFO] [stderr] | [INFO] [stderr] 458 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:459:21 [INFO] [stderr] | [INFO] [stderr] 459 | .filter(|l| l.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!l.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:461:8 [INFO] [stderr] | [INFO] [stderr] 461 | Ok(connections.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!connections.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:475:18 [INFO] [stderr] | [INFO] [stderr] 475 | .ok_or(CircadianError("pacmd failed".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("pacmd failed".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:481:53 [INFO] [stderr] | [INFO] [stderr] 481 | let lines: Vec<&str> = output_str.split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:482:29 [INFO] [stderr] | [INFO] [stderr] 482 | .filter(|l| l.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!l.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:516:31 [INFO] [stderr] | [INFO] [stderr] 516 | .map_or(0, |x| if x.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:526:30 [INFO] [stderr] | [INFO] [stderr] 526 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:528:30 [INFO] [stderr] | [INFO] [stderr] 528 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:530:30 [INFO] [stderr] | [INFO] [stderr] 530 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:546:30 [INFO] [stderr] | [INFO] [stderr] 546 | .and_then(|x| if x.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:549:44 [INFO] [stderr] | [INFO] [stderr] 549 | let proc_list = proc_str.split(","); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:590:53 [INFO] [stderr] | [INFO] [stderr] 590 | std::cmp::max(config.idle_time as i64 - min_idle as i64, 0) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(min_idle)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/main.rs:627:26 [INFO] [stderr] | [INFO] [stderr] 627 | .map(|x| x.iter().fold(false, |acc,p| acc || *p)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.any(|p| *p)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:628:25 [INFO] [stderr] | [INFO] [stderr] 628 | let procs_enabled = config.process_block.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!config.process_block.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:656:20 [INFO] [stderr] | [INFO] [stderr] 656 | Ok(t.split(":").take(2).collect::>().join(":")) [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:662:36 [INFO] [stderr] | [INFO] [stderr] 662 | let is_synced = utc_time.split(":").nth(1) == rtc_time.split(":").nth(1); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:662:66 [INFO] [stderr] | [INFO] [stderr] 662 | let is_synced = utc_time.split(":").nth(1) == rtc_time.split(":").nth(1); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:663:5 [INFO] [stderr] | [INFO] [stderr] 663 | / match is_synced { [INFO] [stderr] 664 | | true => Ok(is_utc), [INFO] [stderr] 665 | | _ => Err("RTC clock does not match OS clock. Auto-wake disabled.".into()), [INFO] [stderr] 666 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_synced { Ok(is_utc) } else { Err("RTC clock does not match OS clock. Auto-wake disabled.".into()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:673:33 [INFO] [stderr] | [INFO] [stderr] 673 | let mut target_time_local = now_local.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `now_local` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:677:29 [INFO] [stderr] | [INFO] [stderr] 677 | let target_time_local = match target_time_local < now_local { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 678 | | true => (target_time_local + time::Duration::days(1)).to_local(), [INFO] [stderr] 679 | | false => target_time_local, [INFO] [stderr] 680 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if target_time_local < now_local { (target_time_local + time::Duration::days(1)).to_local() } else { target_time_local }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:682:5 [INFO] [stderr] | [INFO] [stderr] 682 | / match is_utc { [INFO] [stderr] 683 | | true => Ok(AutoWakeEpoch { [INFO] [stderr] 684 | | epoch: target_time_utc.to_timespec().sec, [INFO] [stderr] 685 | | is_utc: true [INFO] [stderr] ... | [INFO] [stderr] 690 | | }), [INFO] [stderr] 691 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 682 | if is_utc { Ok(AutoWakeEpoch { [INFO] [stderr] 683 | epoch: target_time_utc.to_timespec().sec, [INFO] [stderr] 684 | is_utc: true [INFO] [stderr] 685 | }) } else { Ok(AutoWakeEpoch { [INFO] [stderr] 686 | epoch: target_time_local.to_timespec().sec, [INFO] [stderr] 687 | is_utc: false [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:717:5 [INFO] [stderr] | [INFO] [stderr] 717 | let _ = set_rtc_wakealarm(epoch.epoch)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:728:15 [INFO] [stderr] | [INFO] [stderr] 728 | let now = match epoch.is_utc { [INFO] [stderr] | _______________^ [INFO] [stderr] 729 | | true => time::now_utc().to_timespec().sec as i64, [INFO] [stderr] 730 | | false => time::now().to_timespec().sec as i64, [INFO] [stderr] 731 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if epoch.is_utc { time::now_utc().to_timespec().sec as i64 } else { time::now().to_timespec().sec as i64 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:795:8 [INFO] [stderr] | [INFO] [stderr] 795 | if config.process_block.len() > 0 && exist_process("").is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!config.process_block.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:167:27 [INFO] [stderr] | [INFO] [stderr] 167 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 168 | | true => "*", [INFO] [stderr] 169 | | _ => "", [INFO] [stderr] 170 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:180:27 [INFO] [stderr] | [INFO] [stderr] 180 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 181 | | true => "*", [INFO] [stderr] 182 | | _ => "", [INFO] [stderr] 183 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:223:27 [INFO] [stderr] | [INFO] [stderr] 223 | let enabled = match enabled { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 224 | | true => "*", [INFO] [stderr] 225 | | _ => "", [INFO] [stderr] 226 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if enabled { "*" } else { "" }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | / match Command::new(cmd) [INFO] [stderr] 255 | | .stdout(Stdio::null()) [INFO] [stderr] 256 | | .stderr(Stdio::null()) [INFO] [stderr] 257 | | .status() { [INFO] [stderr] 258 | | Ok(_) => true, [INFO] [stderr] 259 | | Err(_) => false, [INFO] [stderr] 260 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 254 | Command::new(cmd) [INFO] [stderr] 255 | .stdout(Stdio::null()) [INFO] [stderr] 256 | .stderr(Stdio::null()) [INFO] [stderr] 257 | .status().is_ok() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:273:46 [INFO] [stderr] | [INFO] [stderr] 273 | let parts: Vec = time_str.split(".") [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:279:46 [INFO] [stderr] | [INFO] [stderr] 279 | let parts: Vec = time_str.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:287:46 [INFO] [stderr] | [INFO] [stderr] 287 | let parts: Vec = time_str.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:307:10 [INFO] [stderr] | [INFO] [stderr] 307 | .ok_or(CircadianError("w command has no output".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("w command has no output".into()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:314:16 [INFO] [stderr] | [INFO] [stderr] 314 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:312:32 [INFO] [stderr] | [INFO] [stderr] 312 | let idle_times: Vec = String::from_utf8(awk_output.stdout) [INFO] [stderr] | ________________________________^ [INFO] [stderr] 313 | | .unwrap_or(String::new()) [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(awk_output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:315:21 [INFO] [stderr] | [INFO] [stderr] 315 | .filter(|t| t.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!t.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:341:14 [INFO] [stderr] | [INFO] [stderr] 341 | .ok_or(CircadianError("w command has no output".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("w command has no output".into()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:347:24 [INFO] [stderr] | [INFO] [stderr] 347 | let user_str = String::from_utf8(output.stdout) [INFO] [stderr] | ________________________^ [INFO] [stderr] 348 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:349:35 [INFO] [stderr] | [INFO] [stderr] 349 | let user = user_str.split("\n").next().unwrap_or("root"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:354:23 [INFO] [stderr] | [INFO] [stderr] 354 | let mut uid = String::from_utf8(output.stdout) [INFO] [stderr] | _______________________^ [INFO] [stderr] 355 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:363:28 [INFO] [stderr] | [INFO] [stderr] 363 | let mut idle_str = String::from_utf8(output.stdout) [INFO] [stderr] | ____________________________^ [INFO] [stderr] 364 | | .unwrap_or(String::new()); [INFO] [stderr] | |_____________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:395:22 [INFO] [stderr] | [INFO] [stderr] 395 | let uptime_str = String::from_utf8(output.stdout) [INFO] [stderr] | ______________________^ [INFO] [stderr] 396 | | .unwrap_or(String::new()); [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:397:47 [INFO] [stderr] | [INFO] [stderr] 397 | let columns: Vec<&str> = uptime_str.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:398:32 [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] | ________________________________^ [INFO] [stderr] 399 | | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] 400 | | .rev() [INFO] [stderr] 401 | | .map(|x| *x) [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] 399 | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] 400 | .rev().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:398:32 [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] | ________________________________^ [INFO] [stderr] 399 | | .rev().take(3).map(|x| *x).collect::>().iter() [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 398 | let cpu_usages: Vec = columns.iter() [INFO] [stderr] 399 | .rev().take(3).cloned().collect::>().iter() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:402:21 [INFO] [stderr] | [INFO] [stderr] 402 | .filter(|x| x.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:425:22 [INFO] [stderr] | [INFO] [stderr] 425 | let count: u32 = String::from_utf8(output.to_vec()) [INFO] [stderr] | ______________________^ [INFO] [stderr] 426 | | .unwrap_or(String::new()).parse::()?; [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.to_vec()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:438:10 [INFO] [stderr] | [INFO] [stderr] 438 | .ok_or(CircadianError("netstat command has no output".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("netstat command has no output".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:445:10 [INFO] [stderr] | [INFO] [stderr] 445 | .ok_or(CircadianError("netstat command has no connections".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("netstat command has no connections".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/main.rs:455:18 [INFO] [stderr] | [INFO] [stderr] 455 | let output = String::from_utf8(output.stdout) [INFO] [stderr] | __________________^ [INFO] [stderr] 456 | | .unwrap_or(String::new()); [INFO] [stderr] | |_________________________________^ help: try this: `String::from_utf8(output.stdout).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:458:16 [INFO] [stderr] | [INFO] [stderr] 458 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:459:21 [INFO] [stderr] | [INFO] [stderr] 459 | .filter(|l| l.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!l.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:461:8 [INFO] [stderr] | [INFO] [stderr] 461 | Ok(connections.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!connections.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:475:18 [INFO] [stderr] | [INFO] [stderr] 475 | .ok_or(CircadianError("pacmd failed".to_string()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| CircadianError("pacmd failed".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:481:53 [INFO] [stderr] | [INFO] [stderr] 481 | let lines: Vec<&str> = output_str.split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:482:29 [INFO] [stderr] | [INFO] [stderr] 482 | .filter(|l| l.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!l.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:516:31 [INFO] [stderr] | [INFO] [stderr] 516 | .map_or(0, |x| if x.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:526:30 [INFO] [stderr] | [INFO] [stderr] 526 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:528:30 [INFO] [stderr] | [INFO] [stderr] 528 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:530:30 [INFO] [stderr] | [INFO] [stderr] 530 | .and_then(|x| if x.len() > 0 {Some(x.to_owned())} else {None}); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:546:30 [INFO] [stderr] | [INFO] [stderr] 546 | .and_then(|x| if x.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:549:44 [INFO] [stderr] | [INFO] [stderr] 549 | let proc_list = proc_str.split(","); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:590:53 [INFO] [stderr] | [INFO] [stderr] 590 | std::cmp::max(config.idle_time as i64 - min_idle as i64, 0) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(min_idle)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/main.rs:627:26 [INFO] [stderr] | [INFO] [stderr] 627 | .map(|x| x.iter().fold(false, |acc,p| acc || *p)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.any(|p| *p)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:628:25 [INFO] [stderr] | [INFO] [stderr] 628 | let procs_enabled = config.process_block.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!config.process_block.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:656:20 [INFO] [stderr] | [INFO] [stderr] 656 | Ok(t.split(":").take(2).collect::>().join(":")) [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:662:36 [INFO] [stderr] | [INFO] [stderr] 662 | let is_synced = utc_time.split(":").nth(1) == rtc_time.split(":").nth(1); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:662:66 [INFO] [stderr] | [INFO] [stderr] 662 | let is_synced = utc_time.split(":").nth(1) == rtc_time.split(":").nth(1); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:663:5 [INFO] [stderr] | [INFO] [stderr] 663 | / match is_synced { [INFO] [stderr] 664 | | true => Ok(is_utc), [INFO] [stderr] 665 | | _ => Err("RTC clock does not match OS clock. Auto-wake disabled.".into()), [INFO] [stderr] 666 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if is_synced { Ok(is_utc) } else { Err("RTC clock does not match OS clock. Auto-wake disabled.".into()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:673:33 [INFO] [stderr] | [INFO] [stderr] 673 | let mut target_time_local = now_local.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `now_local` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:677:29 [INFO] [stderr] | [INFO] [stderr] 677 | let target_time_local = match target_time_local < now_local { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 678 | | true => (target_time_local + time::Duration::days(1)).to_local(), [INFO] [stderr] 679 | | false => target_time_local, [INFO] [stderr] 680 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if target_time_local < now_local { (target_time_local + time::Duration::days(1)).to_local() } else { target_time_local }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:682:5 [INFO] [stderr] | [INFO] [stderr] 682 | / match is_utc { [INFO] [stderr] 683 | | true => Ok(AutoWakeEpoch { [INFO] [stderr] 684 | | epoch: target_time_utc.to_timespec().sec, [INFO] [stderr] 685 | | is_utc: true [INFO] [stderr] ... | [INFO] [stderr] 690 | | }), [INFO] [stderr] 691 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 682 | if is_utc { Ok(AutoWakeEpoch { [INFO] [stderr] 683 | epoch: target_time_utc.to_timespec().sec, [INFO] [stderr] 684 | is_utc: true [INFO] [stderr] 685 | }) } else { Ok(AutoWakeEpoch { [INFO] [stderr] 686 | epoch: target_time_local.to_timespec().sec, [INFO] [stderr] 687 | is_utc: false [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:717:5 [INFO] [stderr] | [INFO] [stderr] 717 | let _ = set_rtc_wakealarm(epoch.epoch)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:728:15 [INFO] [stderr] | [INFO] [stderr] 728 | let now = match epoch.is_utc { [INFO] [stderr] | _______________^ [INFO] [stderr] 729 | | true => time::now_utc().to_timespec().sec as i64, [INFO] [stderr] 730 | | false => time::now().to_timespec().sec as i64, [INFO] [stderr] 731 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if epoch.is_utc { time::now_utc().to_timespec().sec as i64 } else { time::now().to_timespec().sec as i64 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:795:8 [INFO] [stderr] | [INFO] [stderr] 795 | if config.process_block.len() > 0 && exist_process("").is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!config.process_block.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.91s [INFO] running `"docker" "inspect" "d093c1db9a89a6d0a6f534b930387949a10e32f60a53f762496e8cc771cc6980"` [INFO] running `"docker" "rm" "-f" "d093c1db9a89a6d0a6f534b930387949a10e32f60a53f762496e8cc771cc6980"` [INFO] [stdout] d093c1db9a89a6d0a6f534b930387949a10e32f60a53f762496e8cc771cc6980