[INFO] cloning repository https://github.com/kazukazu123123/pcsc-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kazukazu123123/pcsc-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkazukazu123123%2Fpcsc-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkazukazu123123%2Fpcsc-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f42ddb7a23865b87f1eb30b832dcadbdb31d73ca [INFO] linting kazukazu123123/pcsc-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkazukazu123123%2Fpcsc-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/kazukazu123123/pcsc-rs [INFO] finished tweaking git repo https://github.com/kazukazu123123/pcsc-rs [INFO] tweaked toml for git repo https://github.com/kazukazu123123/pcsc-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kazukazu123123/pcsc-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kazukazu123123/pcsc-rs 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded self_update v0.42.0 [INFO] [stderr] Downloaded self-replace v1.5.0 [INFO] [stderr] Downloaded rust_engineio v0.6.0 [INFO] [stderr] Downloaded rust_socketio v0.6.0 [INFO] [stderr] Downloaded tower-http v0.6.5 [INFO] [stderr] Downloaded sysinfo v0.35.2 [INFO] [stderr] Downloaded git2 v0.20.2 [INFO] [stderr] Downloaded reqwest v0.12.18 [INFO] [stderr] Downloaded objc2-io-kit v0.3.1 [INFO] [stderr] Downloaded libgit2-sys v0.18.1+1.9.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 65f739c2a686bdb0f5596f1dfffbf0f3746e06dd8db852d6ae413e0f6333570c [INFO] running `Command { std: "docker" "start" "-a" "65f739c2a686bdb0f5596f1dfffbf0f3746e06dd8db852d6ae413e0f6333570c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "65f739c2a686bdb0f5596f1dfffbf0f3746e06dd8db852d6ae413e0f6333570c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "65f739c2a686bdb0f5596f1dfffbf0f3746e06dd8db852d6ae413e0f6333570c", kill_on_drop: false }` [INFO] [stdout] 65f739c2a686bdb0f5596f1dfffbf0f3746e06dd8db852d6ae413e0f6333570c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 696efd40abd917ac2023ef045a5584f6a0fd2d8ce9d9819b279b5799bfaa4261 [INFO] running `Command { std: "docker" "start" "-a" "696efd40abd917ac2023ef045a5584f6a0fd2d8ce9d9819b279b5799bfaa4261", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Checking webpki-roots v1.0.0 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling portable-atomic v1.11.0 [INFO] [stderr] Checking rustix v1.0.7 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Compiling self_update v0.42.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking quick-xml v0.37.5 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Compiling cc v1.2.25 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking self-replace v1.5.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling openssl-src v300.5.0+3.5.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking sysinfo v0.35.2 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling libgit2-sys v0.18.1+1.9.0 [INFO] [stderr] Checking backoff v0.4.0 [INFO] [stderr] Checking rustls-webpki v0.103.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking h2 v0.4.10 [INFO] [stderr] Checking tower-http v0.6.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Checking hyper-util v0.1.13 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking hyper-rustls v0.27.6 [INFO] [stderr] Compiling git2 v0.20.2 [INFO] [stderr] Compiling pcsc-rs v1.4.22 (/opt/rustwide/workdir) [INFO] [stdout] warning: this function's return value is unnecessary [INFO] [stdout] --> build.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | fn main() -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps [INFO] [stdout] = note: `-W clippy::unnecessary-wraps` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_wraps)]` [INFO] [stdout] help: remove the return type... [INFO] [stdout] | [INFO] [stdout] 6 - fn main() -> io::Result<()> { [INFO] [stdout] 6 + fn main() -> () { [INFO] [stdout] | [INFO] [stdout] help: ...and then remove returned values [INFO] [stdout] | [INFO] [stdout] 18 - Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> build.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | Err(e) => println!("cargo::warning={}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: `-W clippy::uninlined-format-args` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::uninlined_format_args)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 9 - Err(e) => println!("cargo::warning={}", e), [INFO] [stdout] 9 + Err(e) => println!("cargo::warning={e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.18 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking rust_engineio v0.6.0 [INFO] [stderr] Checking rust_socketio v0.6.0 [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/gpu.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let split2_seperator = Regex::new(r", ").expect("Invalid regex"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/gpu.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] = note: `-W clippy::similar-names` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::similar_names)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant else block [INFO] [stdout] --> src/gpu.rs:28:6 [INFO] [stdout] | [INFO] [stdout] 28 | } else { [INFO] [stdout] | ______^ [INFO] [stdout] 29 | | let res = output.expect("process error"); [INFO] [stdout] 30 | | [INFO] [stdout] 31 | | let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] ... | [INFO] [stdout] 55 | | return result; [INFO] [stdout] 56 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else [INFO] [stdout] = note: `-W clippy::redundant-else` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::redundant_else)]` [INFO] [stdout] help: remove the `else` block and move the contents out [INFO] [stdout] | [INFO] [stdout] 28 ~ } [INFO] [stdout] 29 + let res = output.expect("process error"); [INFO] [stdout] 30 + [INFO] [stdout] 31 + let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] 32 + let split_binding = String::from_utf8(res.stdout).unwrap(); [INFO] [stdout] 33 + let splited: Vec<_> = split_seperator.split(&split_binding).into_iter().collect(); [INFO] [stdout] 34 + [INFO] [stdout] 35 + let replace_seperator = Regex::new(r" %| MiB| GiB|\r").expect("Invalid regex"); [INFO] [stdout] 36 + let split2_seperator = Regex::new(r", ").expect("Invalid regex"); [INFO] [stdout] 37 + let replaced = [INFO] [stdout] 38 + replace_seperator.replace_all(splited.get(1).expect("not found at index 1"), ""); [INFO] [stdout] 39 + let splited2: Vec<_> = split2_seperator.split(&replaced).into_iter().collect(); [INFO] [stdout] 40 + [INFO] [stdout] 41 + let usage: Option = match splited2[1] { [INFO] [stdout] 42 + "[N/A]" => None, [INFO] [stdout] 43 + _ => Some(splited2[1].to_string().parse::().unwrap()), [INFO] [stdout] 44 + }; [INFO] [stdout] 45 + [INFO] [stdout] 46 + let result = Some(GpuData { [INFO] [stdout] 47 + name: splited2[0].into(), [INFO] [stdout] 48 + usage, [INFO] [stdout] 49 + memory: GpuMemory { [INFO] [stdout] 50 + free: splited2[2].to_string().parse::().unwrap(), [INFO] [stdout] 51 + total: splited2[3].to_string().parse::().unwrap(), [INFO] [stdout] 52 + }, [INFO] [stdout] 53 + }); [INFO] [stdout] 54 + [INFO] [stdout] 55 ~ return result;; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binding's name is too similar to existing binding [INFO] [stdout] --> src/gpu.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let split2_seperator = Regex::new(r", ").expect("Invalid regex"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing binding defined here [INFO] [stdout] --> src/gpu.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names [INFO] [stdout] = note: `-W clippy::similar-names` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::similar_names)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant else block [INFO] [stdout] --> src/gpu.rs:28:6 [INFO] [stdout] | [INFO] [stdout] 28 | } else { [INFO] [stdout] | ______^ [INFO] [stdout] 29 | | let res = output.expect("process error"); [INFO] [stdout] 30 | | [INFO] [stdout] 31 | | let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] ... | [INFO] [stdout] 55 | | return result; [INFO] [stdout] 56 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else [INFO] [stdout] = note: `-W clippy::redundant-else` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::redundant_else)]` [INFO] [stdout] help: remove the `else` block and move the contents out [INFO] [stdout] | [INFO] [stdout] 28 ~ } [INFO] [stdout] 29 + let res = output.expect("process error"); [INFO] [stdout] 30 + [INFO] [stdout] 31 + let split_seperator = Regex::new(r"\r\n|\n").expect("Invalid regex"); [INFO] [stdout] 32 + let split_binding = String::from_utf8(res.stdout).unwrap(); [INFO] [stdout] 33 + let splited: Vec<_> = split_seperator.split(&split_binding).into_iter().collect(); [INFO] [stdout] 34 + [INFO] [stdout] 35 + let replace_seperator = Regex::new(r" %| MiB| GiB|\r").expect("Invalid regex"); [INFO] [stdout] 36 + let split2_seperator = Regex::new(r", ").expect("Invalid regex"); [INFO] [stdout] 37 + let replaced = [INFO] [stdout] 38 + replace_seperator.replace_all(splited.get(1).expect("not found at index 1"), ""); [INFO] [stdout] 39 + let splited2: Vec<_> = split2_seperator.split(&replaced).into_iter().collect(); [INFO] [stdout] 40 + [INFO] [stdout] 41 + let usage: Option = match splited2[1] { [INFO] [stdout] 42 + "[N/A]" => None, [INFO] [stdout] 43 + _ => Some(splited2[1].to_string().parse::().unwrap()), [INFO] [stdout] 44 + }; [INFO] [stdout] 45 + [INFO] [stdout] 46 + let result = Some(GpuData { [INFO] [stdout] 47 + name: splited2[0].into(), [INFO] [stdout] 48 + usage, [INFO] [stdout] 49 + memory: GpuMemory { [INFO] [stdout] 50 + free: splited2[2].to_string().parse::().unwrap(), [INFO] [stdout] 51 + total: splited2[3].to_string().parse::().unwrap(), [INFO] [stdout] 52 + }, [INFO] [stdout] 53 + }); [INFO] [stdout] 54 + [INFO] [stdout] 55 ~ return result;; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/status.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | const GIT_DESCRIBE: &'static str = env!("GIT_DESCRIBE"); [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:72:35 [INFO] [stdout] | [INFO] [stdout] 72 | fn update() -> Result<(), Box> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 72 - fn update() -> Result<(), Box> { [INFO] [stdout] 72 + fn update() -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/status.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | const GIT_DESCRIBE: &'static str = env!("GIT_DESCRIBE"); [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:72:35 [INFO] [stdout] | [INFO] [stdout] 72 | fn update() -> Result<(), Box> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 72 - fn update() -> Result<(), Box> { [INFO] [stdout] 72 + fn update() -> Result<(), Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppConfig` is never constructed [INFO] [stdout] --> src/lib.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | struct AppConfig { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `output` after checking its variant with `is_err` [INFO] [stdout] --> src/gpu.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 26 | if output.is_err() { [INFO] [stdout] | ------------------ help: try: `if let Ok() = output` [INFO] [stdout] ... [INFO] [stdout] 29 | let res = output.expect("process error"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 27 ~ None [INFO] [stdout] 28 | } else { [INFO] [stdout] ... [INFO] [stdout] 55 | return result; [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 ~ result [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `regex::Split<'_, '_>` [INFO] [stdout] --> src/gpu.rs:33:31 [INFO] [stdout] | [INFO] [stdout] 33 | let splited: Vec<_> = split_seperator.split(&split_binding).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `split_seperator.split(&split_binding)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `regex::Split<'_, '_>` [INFO] [stdout] --> src/gpu.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | let splited2: Vec<_> = split2_seperator.split(&replaced).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `split2_seperator.split(&replaced)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppConfig` is never constructed [INFO] [stdout] --> src/lib.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | struct AppConfig { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: only a `panic!` in `if`-then statement [INFO] [stdout] --> src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | / if false { [INFO] [stdout] 6 | | panic!("Test Failed."); [INFO] [stdout] 7 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert [INFO] [stdout] = note: `-W clippy::manual-assert` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_assert)]` [INFO] [stdout] help: replace `if`-then-`panic!` with `assert!` [INFO] [stdout] | [INFO] [stdout] 5 - if false { [INFO] [stdout] 6 - panic!("Test Failed."); [INFO] [stdout] 7 - } [INFO] [stdout] 5 + assert!(!false, "Test Failed."); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `output` after checking its variant with `is_err` [INFO] [stdout] --> src/gpu.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 26 | if output.is_err() { [INFO] [stdout] | ------------------ help: try: `if let Ok() = output` [INFO] [stdout] ... [INFO] [stdout] 29 | let res = output.expect("process error"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 27 ~ None [INFO] [stdout] 28 | } else { [INFO] [stdout] ... [INFO] [stdout] 55 | return result; [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gpu.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 ~ result [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `regex::Split<'_, '_>` [INFO] [stdout] --> src/gpu.rs:33:31 [INFO] [stdout] | [INFO] [stdout] 33 | let splited: Vec<_> = split_seperator.split(&split_binding).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `split_seperator.split(&split_binding)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `regex::Split<'_, '_>` [INFO] [stdout] --> src/gpu.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | let splited2: Vec<_> = split2_seperator.split(&replaced).into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `split2_seperator.split(&replaced)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> src/status.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] = note: `-W clippy::items-after-statements` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::items_after_statements)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/status.rs:140:22 [INFO] [stdout] | [INFO] [stdout] 140 | version: format!("Rust client {}", GIT_DESCRIBE), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: `-W clippy::uninlined-format-args` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::uninlined_format_args)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 - version: format!("Rust client {}", GIT_DESCRIBE), [INFO] [stdout] 140 + version: format!("Rust client {GIT_DESCRIBE}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `SystemStatus::get` doesn't need a mutable reference [INFO] [stdout] --> src/threads/mod.rs:18:52 [INFO] [stdout] | [INFO] [stdout] 18 | let current_status = SystemStatus::get(&mut sys); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 18 - let current_status = SystemStatus::get(&mut sys); [INFO] [stdout] 18 + let current_status = SystemStatus::get(&sys); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unix_to_date.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / return format!( [INFO] [stdout] 14 | | "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 | | days, hours, minutes, seconds [INFO] [stdout] 16 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ format!( [INFO] [stdout] 14 + "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 + days, hours, minutes, seconds [INFO] [stdout] 16 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/unix_to_date.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | return format!( [INFO] [stdout] | ____________^ [INFO] [stdout] 14 | | "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 | | days, hours, minutes, seconds [INFO] [stdout] 16 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> src/status.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] = note: `-W clippy::items-after-statements` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::items_after_statements)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/status.rs:140:22 [INFO] [stdout] | [INFO] [stdout] 140 | version: format!("Rust client {}", GIT_DESCRIBE), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: `-W clippy::uninlined-format-args` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::uninlined_format_args)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 - version: format!("Rust client {}", GIT_DESCRIBE), [INFO] [stdout] 140 + version: format!("Rust client {GIT_DESCRIBE}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/lib.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | / Command::new(bin_install_path) [INFO] [stdout] 65 | | .spawn() [INFO] [stdout] 66 | | .expect("Failed to restart the program"); [INFO] [stdout] | | ^- help: try: `.wait()` [INFO] [stdout] | |____________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `println!` args [INFO] [stdout] --> src/lib.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | println!("{:?}", bin_install_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `bin_install_path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] = note: `-W clippy::unnecessary-debug-formatting` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_debug_formatting)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | println!("{:?}", bin_install_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 84 - println!("{:?}", bin_install_path); [INFO] [stdout] 84 + println!("{bin_install_path:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `-W clippy::unnecessary-semicolon` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_semicolon)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/lib.rs:93:17 [INFO] [stdout] | [INFO] [stdout] 93 | "none" | _ => {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `SystemStatus::get` doesn't need a mutable reference [INFO] [stdout] --> src/threads/mod.rs:18:52 [INFO] [stdout] | [INFO] [stdout] 18 | let current_status = SystemStatus::get(&mut sys); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 18 - let current_status = SystemStatus::get(&mut sys); [INFO] [stdout] 18 + let current_status = SystemStatus::get(&sys); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for function which may panic missing `# Panics` section [INFO] [stdout] --> src/lib.rs:101:1 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn start() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first possible panic found here [INFO] [stdout] --> src/lib.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / ClientBuilder::new(pcsc_uri) [INFO] [stdout] 118 | | .namespace("/server") [INFO] [stdout] 119 | | .reconnect_on_disconnect(true) [INFO] [stdout] 120 | | .on(Event::Connect, |_, _| println!("Connected")) [INFO] [stdout] ... | [INFO] [stdout] 147 | | .connect() [INFO] [stdout] 148 | | .expect("Connection failed"); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc [INFO] [stdout] = note: `-W clippy::missing-panics-doc` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::missing_panics_doc)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unix_to_date.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / return format!( [INFO] [stdout] 14 | | "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 | | days, hours, minutes, seconds [INFO] [stdout] 16 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ format!( [INFO] [stdout] 14 + "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 + days, hours, minutes, seconds [INFO] [stdout] 16 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `SystemStatus::get` doesn't need a mutable reference [INFO] [stdout] --> src/lib.rs:106:72 [INFO] [stdout] | [INFO] [stdout] 106 | let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&mut sys))); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 106 - let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&mut sys))); [INFO] [stdout] 106 + let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&sys))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | println!("Hello, world! {}", pcsc_uri); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 113 - println!("Hello, world! {}", pcsc_uri); [INFO] [stdout] 113 + println!("Hello, world! {pcsc_uri}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/unix_to_date.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | return format!( [INFO] [stdout] | ____________^ [INFO] [stdout] 14 | | "{} days {} hours {} minutes {} seconds", [INFO] [stdout] 15 | | days, hours, minutes, seconds [INFO] [stdout] 16 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:127:14 [INFO] [stdout] | [INFO] [stdout] 127 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] = note: `-W clippy::match-wildcard-for-single-variants` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::match_wildcard_for_single_variants)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:125:46 [INFO] [stdout] | [INFO] [stdout] 125 | Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] 125 + Payload::Binary(bin_data) => println!("Received bytes: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:134:17 [INFO] [stdout] | [INFO] [stdout] 134 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:133:46 [INFO] [stdout] | [INFO] [stdout] 133 | Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 133 - Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] 133 + Payload::Binary(bin_data) => println!("Received bytes: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:144:42 [INFO] [stdout] | [INFO] [stdout] 144 | Payload::Binary(bin_data) => eprintln!("Error: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 144 - Payload::Binary(bin_data) => eprintln!("Error: {:#?}", bin_data), [INFO] [stdout] 144 + Payload::Binary(bin_data) => eprintln!("Error: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> src/lib.rs:156:44 [INFO] [stdout] | [INFO] [stdout] 156 | fn init(sys: &mut SysinfoInstance, socket: RawClient) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] = note: `-W clippy::needless-pass-by-value` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::needless_pass_by_value)]` [INFO] [stdout] help: consider taking a reference instead [INFO] [stdout] | [INFO] [stdout] 156 | fn init(sys: &mut SysinfoInstance, socket: &RawClient) { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/lib.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | / Command::new(bin_install_path) [INFO] [stdout] 65 | | .spawn() [INFO] [stdout] 66 | | .expect("Failed to restart the program"); [INFO] [stdout] | | ^- help: try: `.wait()` [INFO] [stdout] | |____________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `Debug` formatting in `println!` args [INFO] [stdout] --> src/lib.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | println!("{:?}", bin_install_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Display` formatting and change this to `bin_install_path.display()` [INFO] [stdout] = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_debug_formatting [INFO] [stdout] = note: `-W clippy::unnecessary-debug-formatting` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_debug_formatting)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | println!("{:?}", bin_install_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 84 - println!("{:?}", bin_install_path); [INFO] [stdout] 84 + println!("{bin_install_path:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `-W clippy::unnecessary-semicolon` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_semicolon)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/lib.rs:93:17 [INFO] [stdout] | [INFO] [stdout] 93 | "none" | _ => {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for function which may panic missing `# Panics` section [INFO] [stdout] --> src/lib.rs:101:1 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn start() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first possible panic found here [INFO] [stdout] --> src/lib.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / ClientBuilder::new(pcsc_uri) [INFO] [stdout] 118 | | .namespace("/server") [INFO] [stdout] 119 | | .reconnect_on_disconnect(true) [INFO] [stdout] 120 | | .on(Event::Connect, |_, _| println!("Connected")) [INFO] [stdout] ... | [INFO] [stdout] 147 | | .connect() [INFO] [stdout] 148 | | .expect("Connection failed"); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc [INFO] [stdout] = note: `-W clippy::missing-panics-doc` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::missing_panics_doc)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `SystemStatus::get` doesn't need a mutable reference [INFO] [stdout] --> src/lib.rs:106:72 [INFO] [stdout] | [INFO] [stdout] 106 | let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&mut sys))); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 106 - let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&mut sys))); [INFO] [stdout] 106 + let shared_data = Arc::new(ArcSwap::from_pointee(SystemStatus::get(&sys))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | println!("Hello, world! {}", pcsc_uri); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 113 - println!("Hello, world! {}", pcsc_uri); [INFO] [stdout] 113 + println!("Hello, world! {pcsc_uri}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:127:14 [INFO] [stdout] | [INFO] [stdout] 127 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] = note: `-W clippy::match-wildcard-for-single-variants` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::match_wildcard_for_single_variants)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:125:46 [INFO] [stdout] | [INFO] [stdout] 125 | Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] 125 + Payload::Binary(bin_data) => println!("Received bytes: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/lib.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:134:17 [INFO] [stdout] | [INFO] [stdout] 134 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:133:46 [INFO] [stdout] | [INFO] [stdout] 133 | Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 133 - Payload::Binary(bin_data) => println!("Received bytes: {:#?}", bin_data), [INFO] [stdout] 133 + Payload::Binary(bin_data) => println!("Received bytes: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard matches only a single variant and will also match any future added variants [INFO] [stdout] --> src/lib.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | _ => (), [INFO] [stdout] | ^ help: try: `Payload::String(_)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/lib.rs:144:42 [INFO] [stdout] | [INFO] [stdout] 144 | Payload::Binary(bin_data) => eprintln!("Error: {:#?}", bin_data), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 144 - Payload::Binary(bin_data) => eprintln!("Error: {:#?}", bin_data), [INFO] [stdout] 144 + Payload::Binary(bin_data) => eprintln!("Error: {bin_data:#?}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> src/lib.rs:156:44 [INFO] [stdout] | [INFO] [stdout] 156 | fn init(sys: &mut SysinfoInstance, socket: RawClient) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] = note: `-W clippy::needless-pass-by-value` implied by `-W clippy::pedantic` [INFO] [stdout] = help: to override `-W clippy::pedantic` add `#[allow(clippy::needless_pass_by_value)]` [INFO] [stdout] help: consider taking a reference instead [INFO] [stdout] | [INFO] [stdout] 156 | fn init(sys: &mut SysinfoInstance, socket: &RawClient) { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | if !env::var("PASS").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::var("PASS").is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | if !env::var("PASS").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::var("PASS").is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 32s [INFO] running `Command { std: "docker" "inspect" "696efd40abd917ac2023ef045a5584f6a0fd2d8ce9d9819b279b5799bfaa4261", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "696efd40abd917ac2023ef045a5584f6a0fd2d8ce9d9819b279b5799bfaa4261", kill_on_drop: false }` [INFO] [stdout] 696efd40abd917ac2023ef045a5584f6a0fd2d8ce9d9819b279b5799bfaa4261