[INFO] cloning repository https://github.com/k8-tools/devflow [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/k8-tools/devflow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 21f7823ad398817353bee9657460d152634338a8 [INFO] linting k8-tools/devflow against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/k8-tools/devflow [INFO] finished tweaking git repo https://github.com/k8-tools/devflow [INFO] tweaked toml for git repo https://github.com/k8-tools/devflow written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/k8-tools/devflow 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/k8-tools/devflow 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] Downloading crates ... [INFO] [stderr] Downloaded jiff-static v0.2.20 [INFO] [stderr] Downloaded libssh2-sys v0.3.1 [INFO] [stderr] Downloaded ratatui v0.24.0 [INFO] [stderr] Downloaded jiff v0.2.20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 7375c76927c60fb91f4b54ebef697c3266cf3afaac66939fba623da2e9a0f9ee [INFO] running `Command { std: "docker" "start" "-a" "7375c76927c60fb91f4b54ebef697c3266cf3afaac66939fba623da2e9a0f9ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7375c76927c60fb91f4b54ebef697c3266cf3afaac66939fba623da2e9a0f9ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7375c76927c60fb91f4b54ebef697c3266cf3afaac66939fba623da2e9a0f9ee", kill_on_drop: false }` [INFO] [stdout] 7375c76927c60fb91f4b54ebef697c3266cf3afaac66939fba623da2e9a0f9ee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 3b1f3ba294974afb19095942b0626fc480d305389453fc53032efa0fa9c086dc [INFO] running `Command { std: "docker" "start" "-a" "3b1f3ba294974afb19095942b0626fc480d305389453fc53032efa0fa9c086dc", kill_on_drop: false }` [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Checking deranged v0.5.6 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking password-hash v0.4.2 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking predicates-core v1.0.10 [INFO] [stderr] Checking num-conv v0.2.0 [INFO] [stderr] Checking time-core v0.1.8 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Checking pbkdf2 v0.11.0 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking float-cmp v0.10.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking winnow v0.5.40 [INFO] [stderr] Checking jiff v0.2.20 [INFO] [stderr] Checking normalize-line-endings v0.3.0 [INFO] [stderr] Checking termtree v0.5.1 [INFO] [stderr] Checking difflib v0.4.0 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Checking predicates-tree v1.0.13 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking wait-timeout v0.2.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling bzip2-sys v0.1.13+1.0.8 [INFO] [stderr] Compiling libgit2-sys v0.16.2+1.7.2 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Checking which v6.0.3 [INFO] [stderr] Checking terminal_size v0.3.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking bstr v1.12.1 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Checking predicates v3.1.4 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking zip v0.6.6 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking dialoguer v0.11.0 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking ratatui v0.24.0 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking toml_edit v0.21.1 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking git2 v0.18.3 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking devflow v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:19:28 [INFO] [stdout] | [INFO] [stdout] 19 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:29:28 [INFO] [stdout] | [INFO] [stdout] 29 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:46:28 [INFO] [stdout] | [INFO] [stdout] 46 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:88:28 [INFO] [stdout] | [INFO] [stdout] 88 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:102:28 [INFO] [stdout] | [INFO] [stdout] 102 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:116:28 [INFO] [stdout] | [INFO] [stdout] 116 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:138:28 [INFO] [stdout] | [INFO] [stdout] 138 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:152:28 [INFO] [stdout] | [INFO] [stdout] 152 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:167:28 [INFO] [stdout] | [INFO] [stdout] 167 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:192:28 [INFO] [stdout] | [INFO] [stdout] 192 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:208:28 [INFO] [stdout] | [INFO] [stdout] 208 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:227:28 [INFO] [stdout] | [INFO] [stdout] 227 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:248:28 [INFO] [stdout] | [INFO] [stdout] 248 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:267:28 [INFO] [stdout] | [INFO] [stdout] 267 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:301:28 [INFO] [stdout] | [INFO] [stdout] 301 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:315:28 [INFO] [stdout] | [INFO] [stdout] 315 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:327:28 [INFO] [stdout] | [INFO] [stdout] 327 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:352:28 [INFO] [stdout] | [INFO] [stdout] 352 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:367:28 [INFO] [stdout] | [INFO] [stdout] 367 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:388:28 [INFO] [stdout] | [INFO] [stdout] 388 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:398:28 [INFO] [stdout] | [INFO] [stdout] 398 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:409:28 [INFO] [stdout] | [INFO] [stdout] 409 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:424:28 [INFO] [stdout] | [INFO] [stdout] 424 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:450:28 [INFO] [stdout] | [INFO] [stdout] 450 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:487:28 [INFO] [stdout] | [INFO] [stdout] 487 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:510:28 [INFO] [stdout] | [INFO] [stdout] 510 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:524:32 [INFO] [stdout] | [INFO] [stdout] 524 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:537:28 [INFO] [stdout] | [INFO] [stdout] 537 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:550:28 [INFO] [stdout] | [INFO] [stdout] 550 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:567:32 [INFO] [stdout] | [INFO] [stdout] 567 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:583:28 [INFO] [stdout] | [INFO] [stdout] 583 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:597:28 [INFO] [stdout] | [INFO] [stdout] 597 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:604:28 [INFO] [stdout] | [INFO] [stdout] 604 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:611:28 [INFO] [stdout] | [INFO] [stdout] 611 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:619:28 [INFO] [stdout] | [INFO] [stdout] 619 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:638:28 [INFO] [stdout] | [INFO] [stdout] 638 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:661:28 [INFO] [stdout] | [INFO] [stdout] 661 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:695:28 [INFO] [stdout] | [INFO] [stdout] 695 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration.rs:723:28 [INFO] [stdout] | [INFO] [stdout] 723 | let mut cmd = Command::cargo_bin("devflow").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | cmd.args(&["init", "123invalid"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "123invalid"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 63 | cmd.args(&["init", "myapp", "--template", "invalid"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "myapp", "--template", "invalid"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:127:14 [INFO] [stdout] | [INFO] [stdout] 127 | cmd.args(&["deploy", "--env", "invalid"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["deploy", "--env", "invalid"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:141:14 [INFO] [stdout] | [INFO] [stdout] 141 | cmd.args(&["logs", "--level", "invalid"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["logs", "--level", "invalid"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:155:14 [INFO] [stdout] | [INFO] [stdout] 155 | cmd.args(&["--output", "json", "init", "testapp", "--template", "default"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--output", "json", "init", "testapp", "--template", "default"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:170:14 [INFO] [stdout] | [INFO] [stdout] 170 | cmd.args(&["init", "myproject", "--template", "default"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "myproject", "--template", "default"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:195:14 [INFO] [stdout] | [INFO] [stdout] 195 | cmd.args(&["init", "gitproject", "--git"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "gitproject", "--git"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:211:14 [INFO] [stdout] | [INFO] [stdout] 211 | cmd.args(&["init", "webapp", "--template", "web"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "webapp", "--template", "web"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:230:14 [INFO] [stdout] | [INFO] [stdout] 230 | cmd.args(&["init", "mylib", "--template", "lib"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "mylib", "--template", "lib"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:251:14 [INFO] [stdout] | [INFO] [stdout] 251 | cmd.args(&["init", "mycli", "--template", "cli"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "mycli", "--template", "cli"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | cmd.args(&["init", "configtest", "--template", "default"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "configtest", "--template", "default"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:318:14 [INFO] [stdout] | [INFO] [stdout] 318 | cmd.args(&["--verbose", "init", "verboseapp"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--verbose", "init", "verboseapp"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:331:14 [INFO] [stdout] | [INFO] [stdout] 331 | cmd.args(&["init", "nocolorapp"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "nocolorapp"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:354:14 [INFO] [stdout] | [INFO] [stdout] 354 | cmd.args(&["--output", "json", "status"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--output", "json", "status"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:370:14 [INFO] [stdout] | [INFO] [stdout] 370 | cmd.args(&["logs", "--level", "info", "--lines", "10"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["logs", "--level", "info", "--lines", "10"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:390:14 [INFO] [stdout] | [INFO] [stdout] 390 | cmd.args(&["deploy", "--env", "staging", "--force"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["deploy", "--env", "staging", "--force"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | cmd.args(&["init", "--help"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "--help"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:426:14 [INFO] [stdout] | [INFO] [stdout] 426 | cmd.args(&["init", "pathproject", "--path", custom_path.to_str().unwrap()]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "pathproject", "--path", custom_path.to_str().unwrap()]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:452:14 [INFO] [stdout] | [INFO] [stdout] 452 | cmd.args(&["build", "--release"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:489:14 [INFO] [stdout] | [INFO] [stdout] 489 | cmd.args(&["test", "--filter", "test_add"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["test", "--filter", "test_add"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:512:14 [INFO] [stdout] | [INFO] [stdout] 512 | cmd.args(&["status", "--detailed"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["status", "--detailed"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:527:18 [INFO] [stdout] | [INFO] [stdout] 527 | cmd.args(&["logs", "--level", level, "--lines", "5"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["logs", "--level", level, "--lines", "5"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:540:14 [INFO] [stdout] | [INFO] [stdout] 540 | cmd.args(&["logs", "--level", "info", "--lines", "3"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["logs", "--level", "info", "--lines", "3"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:569:18 [INFO] [stdout] | [INFO] [stdout] 569 | cmd.args(&["init", &format!("project{}", i)]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", &format!("project{}", i)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:587:14 [INFO] [stdout] | [INFO] [stdout] 587 | cmd.args(&["init", "logtest"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "logtest"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:599:14 [INFO] [stdout] | [INFO] [stdout] 599 | cmd.args(&["init", "123starts-with-number"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "123starts-with-number"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:606:14 [INFO] [stdout] | [INFO] [stdout] 606 | cmd.args(&["init", "has spaces"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "has spaces"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:613:14 [INFO] [stdout] | [INFO] [stdout] 613 | cmd.args(&["init", "has@special#chars"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", "has@special#chars"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:621:14 [INFO] [stdout] | [INFO] [stdout] 621 | cmd.args(&["init", &long_name]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["init", &long_name]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | cmd.args(&["deploy", "--env", "staging", "--version", "1.0.0", "--force"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["deploy", "--env", "staging", "--version", "1.0.0", "--force"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | cmd.args(&["build", "--target", "x86_64-unknown-linux-gnu"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "x86_64-unknown-linux-gnu"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:697:14 [INFO] [stdout] | [INFO] [stdout] 697 | cmd.args(&["test", "--unit"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `["test", "--unit"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/integration.rs:725:14 [INFO] [stdout] | [INFO] [stdout] 725 | cmd.args(&["test", "--integration"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["test", "--integration"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Modifier` [INFO] [stdout] --> src/tui/widgets/panel.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | style::{Modifier, Style}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Gauge` and `text::Line` [INFO] [stdout] --> src/tui/widgets/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | text::Line, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 12 | widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `header::HeaderWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use header::HeaderWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sidebar::SidebarWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use sidebar::SidebarWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PanelStyle` and `Panel` [INFO] [stdout] --> src/tui/widgets/mod.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | pub use panel::{Panel, PanelStyle}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ListStyle` and `SelectableList` [INFO] [stdout] --> src/tui/widgets/mod.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | pub use list::{SelectableList, ListStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ProgressWidget` and `SpinnerWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | pub use progress::{ProgressWidget, SpinnerWidget}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Modifier` [INFO] [stdout] --> src/tui/widgets/panel.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | style::{Modifier, Style}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Gauge` and `text::Line` [INFO] [stdout] --> src/tui/widgets/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | text::Line, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 12 | widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `header::HeaderWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use header::HeaderWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sidebar::SidebarWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use sidebar::SidebarWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PanelStyle` and `Panel` [INFO] [stdout] --> src/tui/widgets/mod.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | pub use panel::{Panel, PanelStyle}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ListStyle` and `SelectableList` [INFO] [stdout] --> src/tui/widgets/mod.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | pub use list::{SelectableList, ListStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ProgressWidget` and `SpinnerWidget` [INFO] [stdout] --> src/tui/widgets/mod.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | pub use progress::{ProgressWidget, SpinnerWidget}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `message` and `json_data` are never read [INFO] [stdout] --> src/commands/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct CommandResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | /// Données JSON optionnelles [INFO] [stdout] 35 | pub json_data: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used [INFO] [stdout] --> src/commands/mod.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 71 | impl StructuredResult { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 72 | /// Crée un résultat de succès [INFO] [stdout] 73 | pub fn success(command: &str, message: &str) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn error(command: &str, message: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn with_data(mut self, data: serde_json::Value) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn with_duration(mut self, duration_ms: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `export_logs` is never used [INFO] [stdout] --> src/commands/logs.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_version` and `with_settings` are never used [INFO] [stdout] --> src/config/settings.rs:256:12 [INFO] [stdout] | [INFO] [stdout] 243 | impl ProjectConfig { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn set_version(&mut self, version: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 261 | pub fn with_settings(mut self, settings: ProjectSettings) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/tui/events.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | Input(char), [INFO] [stdout] | ----- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 53 - Input(char), [INFO] [stdout] 53 + Input(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ScrollDown` and `ScrollUp` are never constructed [INFO] [stdout] --> src/tui/events.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum Action { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 41 | ScrollDown, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 42 | /// Défilement vers le haut [INFO] [stdout] 43 | ScrollUp, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OutputMessage` is never used [INFO] [stdout] --> src/tui/runner.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum OutputMessage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandRunner` is never constructed [INFO] [stdout] --> src/tui/runner.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct CommandRunner { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used [INFO] [stdout] --> src/tui/runner.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl CommandRunner { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 37 | /// Exécute une commande de manière asynchrone [INFO] [stdout] 38 | pub fn run(name: &str, args: Vec) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | fn execute_command( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn try_recv(&self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn recv(&self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn has_messages(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command_with_state` is never used [INFO] [stdout] --> src/tui/runner.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn run_command_with_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_runner_messages` is never used [INFO] [stdout] --> src/tui/runner.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgressTracker` is never constructed [INFO] [stdout] --> src/tui/runner.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct ProgressTracker { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tui/runner.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl ProgressTracker { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 190 | /// Crée un nouveau tracker [INFO] [stdout] 191 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn with_total_steps(mut self, steps: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn step(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn percentage(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn should_update(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn elapsed_formatted(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_create_dialog` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_delete_confirm` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:185:8 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `centered_rect` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_action` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:243:8 [INFO] [stdout] | [INFO] [stdout] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Editing` is never constructed [INFO] [stdout] --> src/tui/state.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum Mode { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 75 | Editing, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `new_project_name` and `selected_template` are never read [INFO] [stdout] --> src/tui/state.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 122 | pub struct ProjectsState { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 128 | pub new_project_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 129 | /// Template sélectionné pour la création [INFO] [stdout] 130 | pub selected_template: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `select_next`, `select_previous`, and `next_template` are never used [INFO] [stdout] --> src/tui/state.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl ProjectsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn select_next(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn select_previous(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn next_template(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `args` is never read [INFO] [stdout] --> src/tui/state.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 379 | pub struct RunningCommand { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 383 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/tui/state.rs:398:9 [INFO] [stdout] | [INFO] [stdout] 390 | pub struct ExecutedCommand { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 398 | pub timestamp: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `LogEntry` is never used [INFO] [stdout] --> src/tui/state.rs:413:10 [INFO] [stdout] | [INFO] [stdout] 413 | pub type LogEntry = LogMessage; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `color` and `prefix` are never used [INFO] [stdout] --> src/tui/state.rs:433:12 [INFO] [stdout] | [INFO] [stdout] 431 | impl LogLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 432 | /// Retourne la couleur associée au niveau [INFO] [stdout] 433 | pub fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 445 | pub fn prefix(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HeaderWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/header.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct HeaderWidget { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used [INFO] [stdout] --> src/tui/widgets/header.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl HeaderWidget { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 25 | /// Crée un nouvel en-tête [INFO] [stdout] 26 | pub fn new(title: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn with_subtitle(mut self, subtitle: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn hide_version(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn with_version(mut self, version: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_header` is never used [INFO] [stdout] --> src/tui/widgets/header.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn default_header() -> HeaderWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SidebarWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/sidebar.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SidebarWidget { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used [INFO] [stdout] --> src/tui/widgets/sidebar.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SidebarWidget { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 26 | /// Crée une nouvelle sidebar [INFO] [stdout] 27 | pub fn new(tabs: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn selected(mut self, index: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn focused(mut self, focused: bool) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn with_title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PanelStyle` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum PanelStyle { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `color` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl PanelStyle { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 33 | /// Retourne la couleur associée [INFO] [stdout] 34 | fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Panel` is never constructed [INFO] [stdout] --> src/tui/widgets/panel.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Panel<'a> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used [INFO] [stdout] --> src/tui/widgets/panel.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl<'a> Panel<'a> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 56 | /// Crée un nouveau panneau [INFO] [stdout] 57 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn content(mut self, content: Vec>) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn style(mut self, style: PanelStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn border_type(mut self, border_type: BorderType) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modal_panel` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn modal_panel<'a>(title: impl Into, content: Vec>) -> Panel<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_area` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:130:8 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ListStyle` is never used [INFO] [stdout] --> src/tui/widgets/list.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | pub enum ListStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SelectableList` is never constructed [INFO] [stdout] --> src/tui/widgets/list.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct SelectableList { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used [INFO] [stdout] --> src/tui/widgets/list.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl SelectableList { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 37 | /// Crée une nouvelle liste [INFO] [stdout] 38 | pub fn new(items: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn selected(mut self, index: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn style(mut self, style: ListStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn highlight_symbol(mut self, symbol: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simple_list` is never used [INFO] [stdout] --> src/tui/widgets/list.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn simple_list(items: Vec, selected: Option) -> SelectableList { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgressWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/progress.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct ProgressWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ProgressStyle` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | pub enum ProgressStyle { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `color` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl ProgressStyle { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 41 | fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used [INFO] [stdout] --> src/tui/widgets/progress.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl ProgressWidget { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 53 | /// Crée une nouvelle barre de progression [INFO] [stdout] 54 | pub fn new(progress: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn label(mut self, label: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn show_percentage(mut self, show: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn style(mut self, style: ProgressStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpinnerWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/progress.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 108 | pub struct SpinnerWidget { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used [INFO] [stdout] --> src/tui/widgets/progress.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 114 | impl SpinnerWidget { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 115 | /// Crée un nouveau spinner [INFO] [stdout] 116 | pub fn new(message: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | fn current(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simple_progress` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:154:8 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_spinner` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn default_spinner(message: impl Into) -> SpinnerWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_command` is never used [INFO] [stdout] --> src/utils/mod.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn check_command(cmd: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_rust_project` is never used [INFO] [stdout] --> src/utils/mod.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn is_rust_project() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_project_name` is never used [INFO] [stdout] --> src/utils/mod.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn get_project_name() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_project_version` is never used [INFO] [stdout] --> src/utils/mod.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn get_project_version() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils/mod.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn format_duration(duration: std::time::Duration) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> src/utils/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn truncate(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `supports_color` is never used [INFO] [stdout] --> src/utils/mod.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn supports_color() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `terminal_width` is never used [INFO] [stdout] --> src/utils/mod.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn terminal_width() -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `center_text` is never used [INFO] [stdout] --> src/utils/mod.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn center_text(text: &str, width: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `separator_line` is never used [INFO] [stdout] --> src/utils/mod.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn separator_line(width: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_box` is never used [INFO] [stdout] --> src/utils/mod.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn print_box(title: &str, content: &[&str]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_kebab_case` is never used [INFO] [stdout] --> src/utils/mod.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn to_kebab_case(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_snake_case` is never used [INFO] [stdout] --> src/utils/mod.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn to_snake_case(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_dir` is never used [INFO] [stdout] --> src/utils/mod.rs:177:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn current_dir() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_exists` is never used [INFO] [stdout] --> src/utils/mod.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn file_exists(path: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file` is never used [INFO] [stdout] --> src/utils/mod.rs:188:8 [INFO] [stdout] | [INFO] [stdout] 188 | pub fn read_file(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_file` is never used [INFO] [stdout] --> src/utils/mod.rs:194:8 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_dir_all` is never used [INFO] [stdout] --> src/utils/mod.rs:200:8 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn create_dir_all(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dir_all` is never used [INFO] [stdout] --> src/utils/mod.rs:206:8 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn remove_dir_all(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_file` is never used [INFO] [stdout] --> src/utils/mod.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_size` is never used [INFO] [stdout] --> src/utils/mod.rs:219:8 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn file_size(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_file_size` is never used [INFO] [stdout] --> src/utils/mod.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn format_file_size(bytes: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:241:8 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn current_timestamp() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:246:8 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn parse_timestamp(ts: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_id` is never used [INFO] [stdout] --> src/utils/mod.rs:253:8 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn generate_id() -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `env_or_default` is never used [INFO] [stdout] --> src/utils/mod.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | pub fn env_or_default(var: &str, default: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `env_is_set` is never used [INFO] [stdout] --> src/utils/mod.rs:270:8 [INFO] [stdout] | [INFO] [stdout] 270 | pub fn env_is_set(var: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command` is never used [INFO] [stdout] --> src/utils/mod.rs:275:8 [INFO] [stdout] | [INFO] [stdout] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command_status` is never used [INFO] [stdout] --> src/utils/mod.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sleep_ms` is never used [INFO] [stdout] --> src/utils/mod.rs:293:8 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn sleep_ms(ms: u64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sleep_secs` is never used [INFO] [stdout] --> src/utils/mod.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn sleep_secs(secs: u64) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disable_colors` is never used [INFO] [stdout] --> src/utils/colors.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn disable_colors() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enable_colors` is never used [INFO] [stdout] --> src/utils/colors.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn enable_colors() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reset_color_control` is never used [INFO] [stdout] --> src/utils/colors.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn reset_color_control() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bold` is never used [INFO] [stdout] --> src/utils/colors.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn print_bold(message: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_italic` is never used [INFO] [stdout] --> src/utils/colors.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn print_italic(message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_colored` is never used [INFO] [stdout] --> src/utils/colors.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn print_colored(message: &str, color: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `green` is never used [INFO] [stdout] --> src/utils/colors.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn green(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `red` is never used [INFO] [stdout] --> src/utils/colors.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn red(text: &str) -> ColoredString { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `yellow` is never used [INFO] [stdout] --> src/utils/colors.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn yellow(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blue` is never used [INFO] [stdout] --> src/utils/colors.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn blue(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cyan` is never used [INFO] [stdout] --> src/utils/colors.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn cyan(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `magenta` is never used [INFO] [stdout] --> src/utils/colors.rs:182:8 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn magenta(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold` is never used [INFO] [stdout] --> src/utils/colors.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn bold(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `underline` is never used [INFO] [stdout] --> src/utils/colors.rs:200:8 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn underline(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `italic` is never used [INFO] [stdout] --> src/utils/colors.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn italic(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_green` is never used [INFO] [stdout] --> src/utils/colors.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn bold_green(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_red` is never used [INFO] [stdout] --> src/utils/colors.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn bold_red(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_yellow` is never used [INFO] [stdout] --> src/utils/colors.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn bold_yellow(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_blue` is never used [INFO] [stdout] --> src/utils/colors.rs:245:8 [INFO] [stdout] | [INFO] [stdout] 245 | pub fn bold_blue(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_cyan` is never used [INFO] [stdout] --> src/utils/colors.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn bold_cyan(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_success` is never used [INFO] [stdout] --> src/utils/colors.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | pub fn icon_success() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_error` is never used [INFO] [stdout] --> src/utils/colors.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn icon_error() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_warning` is never used [INFO] [stdout] --> src/utils/colors.rs:277:8 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn icon_warning() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_info` is never used [INFO] [stdout] --> src/utils/colors.rs:282:8 [INFO] [stdout] | [INFO] [stdout] 282 | pub fn icon_info() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_arrow` is never used [INFO] [stdout] --> src/utils/colors.rs:287:8 [INFO] [stdout] | [INFO] [stdout] 287 | pub fn icon_arrow() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_check` is never used [INFO] [stdout] --> src/utils/colors.rs:292:8 [INFO] [stdout] | [INFO] [stdout] 292 | pub fn icon_check() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_cross` is never used [INFO] [stdout] --> src/utils/colors.rs:297:8 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn icon_cross() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_bullet` is never used [INFO] [stdout] --> src/utils/colors.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | pub fn icon_bullet() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_folder` is never used [INFO] [stdout] --> src/utils/colors.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | pub fn icon_folder() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_file` is never used [INFO] [stdout] --> src/utils/colors.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn icon_file() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_git` is never used [INFO] [stdout] --> src/utils/colors.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn icon_git() -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_build` is never used [INFO] [stdout] --> src/utils/colors.rs:322:8 [INFO] [stdout] | [INFO] [stdout] 322 | pub fn icon_build() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_test` is never used [INFO] [stdout] --> src/utils/colors.rs:327:8 [INFO] [stdout] | [INFO] [stdout] 327 | pub fn icon_test() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_deploy` is never used [INFO] [stdout] --> src/utils/colors.rs:332:8 [INFO] [stdout] | [INFO] [stdout] 332 | pub fn icon_deploy() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_log` is never used [INFO] [stdout] --> src/utils/colors.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn icon_log() -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_status` is never used [INFO] [stdout] --> src/utils/colors.rs:342:8 [INFO] [stdout] | [INFO] [stdout] 342 | pub fn icon_status() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_separator` is never used [INFO] [stdout] --> src/utils/colors.rs:351:8 [INFO] [stdout] | [INFO] [stdout] 351 | pub fn print_separator() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_box` is never used [INFO] [stdout] --> src/utils/colors.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn print_box(title: &str, lines: &[&str]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_list` is never used [INFO] [stdout] --> src/utils/colors.rs:385:8 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn print_list(items: &[&str]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_key_value` is never used [INFO] [stdout] --> src/utils/colors.rs:392:8 [INFO] [stdout] | [INFO] [stdout] 392 | pub fn print_key_value(key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_step` is never used [INFO] [stdout] --> src/utils/colors.rs:401:8 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn print_step(step: usize, total: usize, message: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn init_logger() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger_with_level` is never used [INFO] [stdout] --> src/utils/logger.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn init_logger_with_level(level: LevelFilter) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_file_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_log_level` is never used [INFO] [stdout] --> src/utils/logger.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn current_log_level() -> LevelFilter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_log_enabled` is never used [INFO] [stdout] --> src/utils/logger.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn is_log_enabled(level: log::Level) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_command` is never used [INFO] [stdout] --> src/utils/logger.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn log_command(command: &str, args: &[&str]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_operation_start` is never used [INFO] [stdout] --> src/utils/logger.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn log_operation_start(operation: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_operation_end` is never used [INFO] [stdout] --> src/utils/logger.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn log_operation_end(operation: &str, success: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_error` is never used [INFO] [stdout] --> src/utils/logger.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_performance` is never used [INFO] [stdout] --> src/utils/logger.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn log_performance(operation: &str, duration_ms: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_config` is never used [INFO] [stdout] --> src/utils/logger.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn log_config(key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_user_action` is never used [INFO] [stdout] --> src/utils/logger.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn log_user_action(action: &str, details: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_structured_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn create_structured_logger() -> StructuredLogger { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StructuredLogger` is never constructed [INFO] [stdout] --> src/utils/logger.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct StructuredLogger { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LogEntry` is never constructed [INFO] [stdout] --> src/utils/logger.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 149 | struct LogEntry { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used [INFO] [stdout] --> src/utils/logger.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl StructuredLogger { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 157 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn log(&mut self, level: &str, target: &str, message: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn to_json(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn save_to_file(&self, path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_log_level_from_str` is never used [INFO] [stdout] --> src/utils/logger.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_log_level` is never used [INFO] [stdout] --> src/utils/logger.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn show_log_level() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_log_levels` is never used [INFO] [stdout] --> src/utils/logger.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | pub fn list_log_levels() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_simple_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_download_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_multi_step_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_hidden_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `increment_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_success` is never used [INFO] [stdout] --> src/utils/progress.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_error` is never used [INFO] [stdout] --> src/utils/progress.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_warning` is never used [INFO] [stdout] --> src/utils/progress.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_parallel_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn with_progress(total: u64, message: &str, f: F) -> T [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_percentage` is never used [INFO] [stdout] --> src/utils/progress.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_counter` is never used [INFO] [stdout] --> src/utils/progress.rs:203:8 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn print_counter(current: usize, total: usize, label: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modern` is never used [INFO] [stdout] --> src/utils/progress.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn modern() -> ProgressStyle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal` is never used [INFO] [stdout] --> src/utils/progress.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn minimal() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detailed` is never used [INFO] [stdout] --> src/utils/progress.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 240 | pub fn detailed() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `download` is never used [INFO] [stdout] --> src/utils/progress.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn download() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `upload` is never used [INFO] [stdout] --> src/utils/progress.rs:256:12 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn upload() -> ProgressStyle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/build.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for BuildOptions { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self { [INFO] [stdout] 27 | | release: false, [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 18 + #[derive(Default)] [INFO] [stdout] 19 | pub struct BuildOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `message` and `json_data` are never read [INFO] [stdout] --> src/commands/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct CommandResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | /// Données JSON optionnelles [INFO] [stdout] 35 | pub json_data: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used [INFO] [stdout] --> src/commands/mod.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 71 | impl StructuredResult { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 72 | /// Crée un résultat de succès [INFO] [stdout] 73 | pub fn success(command: &str, message: &str) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn error(command: &str, message: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn with_data(mut self, data: serde_json::Value) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn with_duration(mut self, duration_ms: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `export_logs` is never used [INFO] [stdout] --> src/commands/logs.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set_version`, and `with_settings` are never used [INFO] [stdout] --> src/config/settings.rs:245:12 [INFO] [stdout] | [INFO] [stdout] 243 | impl ProjectConfig { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 244 | /// Create a new project configuration [INFO] [stdout] 245 | pub fn new(name: &str, template: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn set_version(&mut self, version: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 261 | pub fn with_settings(mut self, settings: ProjectSettings) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/tui/events.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | Input(char), [INFO] [stdout] | ----- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 53 - Input(char), [INFO] [stdout] 53 + Input(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ScrollDown` and `ScrollUp` are never constructed [INFO] [stdout] --> src/tui/events.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum Action { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 41 | ScrollDown, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 42 | /// Défilement vers le haut [INFO] [stdout] 43 | ScrollUp, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OutputMessage` is never used [INFO] [stdout] --> src/tui/runner.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum OutputMessage { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandRunner` is never constructed [INFO] [stdout] --> src/tui/runner.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct CommandRunner { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used [INFO] [stdout] --> src/tui/runner.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl CommandRunner { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 37 | /// Exécute une commande de manière asynchrone [INFO] [stdout] 38 | pub fn run(name: &str, args: Vec) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | fn execute_command( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn try_recv(&self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn recv(&self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn has_messages(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command_with_state` is never used [INFO] [stdout] --> src/tui/runner.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn run_command_with_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_runner_messages` is never used [INFO] [stdout] --> src/tui/runner.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgressTracker` is never constructed [INFO] [stdout] --> src/tui/runner.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct ProgressTracker { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tui/runner.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl ProgressTracker { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 190 | /// Crée un nouveau tracker [INFO] [stdout] 191 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn with_total_steps(mut self, steps: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn step(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn percentage(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn should_update(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn elapsed_formatted(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_create_dialog` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_delete_confirm` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:185:8 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `centered_rect` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_action` is never used [INFO] [stdout] --> src/tui/screens/projects.rs:243:8 [INFO] [stdout] | [INFO] [stdout] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Editing` is never constructed [INFO] [stdout] --> src/tui/state.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum Mode { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 75 | Editing, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `new_project_name` and `selected_template` are never read [INFO] [stdout] --> src/tui/state.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 122 | pub struct ProjectsState { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 128 | pub new_project_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 129 | /// Template sélectionné pour la création [INFO] [stdout] 130 | pub selected_template: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `select_next`, `select_previous`, and `next_template` are never used [INFO] [stdout] --> src/tui/state.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl ProjectsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn select_next(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn select_previous(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn next_template(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `args` is never read [INFO] [stdout] --> src/tui/state.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 379 | pub struct RunningCommand { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 383 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/tui/state.rs:398:9 [INFO] [stdout] | [INFO] [stdout] 390 | pub struct ExecutedCommand { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 398 | pub timestamp: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `LogEntry` is never used [INFO] [stdout] --> src/tui/state.rs:413:10 [INFO] [stdout] | [INFO] [stdout] 413 | pub type LogEntry = LogMessage; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `color` and `prefix` are never used [INFO] [stdout] --> src/tui/state.rs:433:12 [INFO] [stdout] | [INFO] [stdout] 431 | impl LogLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 432 | /// Retourne la couleur associée au niveau [INFO] [stdout] 433 | pub fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 445 | pub fn prefix(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HeaderWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/header.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct HeaderWidget { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used [INFO] [stdout] --> src/tui/widgets/header.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl HeaderWidget { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 25 | /// Crée un nouvel en-tête [INFO] [stdout] 26 | pub fn new(title: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn with_subtitle(mut self, subtitle: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn hide_version(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn with_version(mut self, version: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_header` is never used [INFO] [stdout] --> src/tui/widgets/header.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn default_header() -> HeaderWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SidebarWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/sidebar.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SidebarWidget { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used [INFO] [stdout] --> src/tui/widgets/sidebar.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SidebarWidget { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 26 | /// Crée une nouvelle sidebar [INFO] [stdout] 27 | pub fn new(tabs: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn selected(mut self, index: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn focused(mut self, focused: bool) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn with_title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PanelStyle` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum PanelStyle { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `color` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl PanelStyle { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 33 | /// Retourne la couleur associée [INFO] [stdout] 34 | fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Panel` is never constructed [INFO] [stdout] --> src/tui/widgets/panel.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Panel<'a> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used [INFO] [stdout] --> src/tui/widgets/panel.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl<'a> Panel<'a> { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 56 | /// Crée un nouveau panneau [INFO] [stdout] 57 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn content(mut self, content: Vec>) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn style(mut self, style: PanelStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn border_type(mut self, border_type: BorderType) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modal_panel` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn modal_panel<'a>(title: impl Into, content: Vec>) -> Panel<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_area` is never used [INFO] [stdout] --> src/tui/widgets/panel.rs:130:8 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ListStyle` is never used [INFO] [stdout] --> src/tui/widgets/list.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | pub enum ListStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SelectableList` is never constructed [INFO] [stdout] --> src/tui/widgets/list.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct SelectableList { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used [INFO] [stdout] --> src/tui/widgets/list.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl SelectableList { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 37 | /// Crée une nouvelle liste [INFO] [stdout] 38 | pub fn new(items: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn selected(mut self, index: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn title(mut self, title: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn style(mut self, style: ListStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn highlight_symbol(mut self, symbol: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simple_list` is never used [INFO] [stdout] --> src/tui/widgets/list.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn simple_list(items: Vec, selected: Option) -> SelectableList { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgressWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/progress.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct ProgressWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ProgressStyle` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | pub enum ProgressStyle { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `color` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl ProgressStyle { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 41 | fn color(&self) -> ratatui::style::Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used [INFO] [stdout] --> src/tui/widgets/progress.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl ProgressWidget { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 53 | /// Crée une nouvelle barre de progression [INFO] [stdout] 54 | pub fn new(progress: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn label(mut self, label: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn show_percentage(mut self, show: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn style(mut self, style: ProgressStyle) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpinnerWidget` is never constructed [INFO] [stdout] --> src/tui/widgets/progress.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 108 | pub struct SpinnerWidget { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used [INFO] [stdout] --> src/tui/widgets/progress.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 114 | impl SpinnerWidget { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 115 | /// Crée un nouveau spinner [INFO] [stdout] 116 | pub fn new(message: impl Into) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | fn current(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simple_progress` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:154:8 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_spinner` is never used [INFO] [stdout] --> src/tui/widgets/progress.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn default_spinner(message: impl Into) -> SpinnerWidget { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_command` is never used [INFO] [stdout] --> src/utils/mod.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn check_command(cmd: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_rust_project` is never used [INFO] [stdout] --> src/utils/mod.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn is_rust_project() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_project_name` is never used [INFO] [stdout] --> src/utils/mod.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn get_project_name() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_project_version` is never used [INFO] [stdout] --> src/utils/mod.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn get_project_version() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils/mod.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn format_duration(duration: std::time::Duration) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> src/utils/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn truncate(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `supports_color` is never used [INFO] [stdout] --> src/utils/mod.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn supports_color() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `terminal_width` is never used [INFO] [stdout] --> src/utils/mod.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn terminal_width() -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `center_text` is never used [INFO] [stdout] --> src/utils/mod.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn center_text(text: &str, width: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `separator_line` is never used [INFO] [stdout] --> src/utils/mod.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn separator_line(width: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_box` is never used [INFO] [stdout] --> src/utils/mod.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn print_box(title: &str, content: &[&str]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_kebab_case` is never used [INFO] [stdout] --> src/utils/mod.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn to_kebab_case(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_snake_case` is never used [INFO] [stdout] --> src/utils/mod.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn to_snake_case(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_dir` is never used [INFO] [stdout] --> src/utils/mod.rs:177:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn current_dir() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_exists` is never used [INFO] [stdout] --> src/utils/mod.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn file_exists(path: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file` is never used [INFO] [stdout] --> src/utils/mod.rs:188:8 [INFO] [stdout] | [INFO] [stdout] 188 | pub fn read_file(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_file` is never used [INFO] [stdout] --> src/utils/mod.rs:194:8 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_dir_all` is never used [INFO] [stdout] --> src/utils/mod.rs:200:8 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn create_dir_all(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dir_all` is never used [INFO] [stdout] --> src/utils/mod.rs:206:8 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn remove_dir_all(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_file` is never used [INFO] [stdout] --> src/utils/mod.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_size` is never used [INFO] [stdout] --> src/utils/mod.rs:219:8 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn file_size(path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_file_size` is never used [INFO] [stdout] --> src/utils/mod.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn format_file_size(bytes: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:241:8 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn current_timestamp() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:246:8 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn parse_timestamp(ts: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_id` is never used [INFO] [stdout] --> src/utils/mod.rs:253:8 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn generate_id() -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `env_or_default` is never used [INFO] [stdout] --> src/utils/mod.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | pub fn env_or_default(var: &str, default: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `env_is_set` is never used [INFO] [stdout] --> src/utils/mod.rs:270:8 [INFO] [stdout] | [INFO] [stdout] 270 | pub fn env_is_set(var: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command` is never used [INFO] [stdout] --> src/utils/mod.rs:275:8 [INFO] [stdout] | [INFO] [stdout] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_command_status` is never used [INFO] [stdout] --> src/utils/mod.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sleep_ms` is never used [INFO] [stdout] --> src/utils/mod.rs:293:8 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn sleep_ms(ms: u64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sleep_secs` is never used [INFO] [stdout] --> src/utils/mod.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn sleep_secs(secs: u64) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disable_colors` is never used [INFO] [stdout] --> src/utils/colors.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn disable_colors() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enable_colors` is never used [INFO] [stdout] --> src/utils/colors.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn enable_colors() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reset_color_control` is never used [INFO] [stdout] --> src/utils/colors.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn reset_color_control() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bold` is never used [INFO] [stdout] --> src/utils/colors.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn print_bold(message: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_italic` is never used [INFO] [stdout] --> src/utils/colors.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn print_italic(message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_colored` is never used [INFO] [stdout] --> src/utils/colors.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn print_colored(message: &str, color: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `green` is never used [INFO] [stdout] --> src/utils/colors.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn green(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `red` is never used [INFO] [stdout] --> src/utils/colors.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn red(text: &str) -> ColoredString { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `yellow` is never used [INFO] [stdout] --> src/utils/colors.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn yellow(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blue` is never used [INFO] [stdout] --> src/utils/colors.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn blue(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cyan` is never used [INFO] [stdout] --> src/utils/colors.rs:173:8 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn cyan(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `magenta` is never used [INFO] [stdout] --> src/utils/colors.rs:182:8 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn magenta(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold` is never used [INFO] [stdout] --> src/utils/colors.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn bold(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `underline` is never used [INFO] [stdout] --> src/utils/colors.rs:200:8 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn underline(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `italic` is never used [INFO] [stdout] --> src/utils/colors.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn italic(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_green` is never used [INFO] [stdout] --> src/utils/colors.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn bold_green(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_red` is never used [INFO] [stdout] --> src/utils/colors.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn bold_red(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_yellow` is never used [INFO] [stdout] --> src/utils/colors.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn bold_yellow(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_blue` is never used [INFO] [stdout] --> src/utils/colors.rs:245:8 [INFO] [stdout] | [INFO] [stdout] 245 | pub fn bold_blue(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bold_cyan` is never used [INFO] [stdout] --> src/utils/colors.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 254 | pub fn bold_cyan(text: &str) -> ColoredString { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_success` is never used [INFO] [stdout] --> src/utils/colors.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | pub fn icon_success() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_error` is never used [INFO] [stdout] --> src/utils/colors.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn icon_error() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_warning` is never used [INFO] [stdout] --> src/utils/colors.rs:277:8 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn icon_warning() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_info` is never used [INFO] [stdout] --> src/utils/colors.rs:282:8 [INFO] [stdout] | [INFO] [stdout] 282 | pub fn icon_info() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_arrow` is never used [INFO] [stdout] --> src/utils/colors.rs:287:8 [INFO] [stdout] | [INFO] [stdout] 287 | pub fn icon_arrow() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_check` is never used [INFO] [stdout] --> src/utils/colors.rs:292:8 [INFO] [stdout] | [INFO] [stdout] 292 | pub fn icon_check() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_cross` is never used [INFO] [stdout] --> src/utils/colors.rs:297:8 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn icon_cross() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_bullet` is never used [INFO] [stdout] --> src/utils/colors.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | pub fn icon_bullet() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_folder` is never used [INFO] [stdout] --> src/utils/colors.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | pub fn icon_folder() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_file` is never used [INFO] [stdout] --> src/utils/colors.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn icon_file() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_git` is never used [INFO] [stdout] --> src/utils/colors.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn icon_git() -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_build` is never used [INFO] [stdout] --> src/utils/colors.rs:322:8 [INFO] [stdout] | [INFO] [stdout] 322 | pub fn icon_build() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_test` is never used [INFO] [stdout] --> src/utils/colors.rs:327:8 [INFO] [stdout] | [INFO] [stdout] 327 | pub fn icon_test() -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_deploy` is never used [INFO] [stdout] --> src/utils/colors.rs:332:8 [INFO] [stdout] | [INFO] [stdout] 332 | pub fn icon_deploy() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_log` is never used [INFO] [stdout] --> src/utils/colors.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn icon_log() -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_status` is never used [INFO] [stdout] --> src/utils/colors.rs:342:8 [INFO] [stdout] | [INFO] [stdout] 342 | pub fn icon_status() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_separator` is never used [INFO] [stdout] --> src/utils/colors.rs:351:8 [INFO] [stdout] | [INFO] [stdout] 351 | pub fn print_separator() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_box` is never used [INFO] [stdout] --> src/utils/colors.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn print_box(title: &str, lines: &[&str]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_list` is never used [INFO] [stdout] --> src/utils/colors.rs:385:8 [INFO] [stdout] | [INFO] [stdout] 385 | pub fn print_list(items: &[&str]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_key_value` is never used [INFO] [stdout] --> src/utils/colors.rs:392:8 [INFO] [stdout] | [INFO] [stdout] 392 | pub fn print_key_value(key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_step` is never used [INFO] [stdout] --> src/utils/colors.rs:401:8 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn print_step(step: usize, total: usize, message: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn init_logger() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_logger_with_level` is never used [INFO] [stdout] --> src/utils/logger.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn init_logger_with_level(level: LevelFilter) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_file_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_log_level` is never used [INFO] [stdout] --> src/utils/logger.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn current_log_level() -> LevelFilter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_log_enabled` is never used [INFO] [stdout] --> src/utils/logger.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn is_log_enabled(level: log::Level) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_command` is never used [INFO] [stdout] --> src/utils/logger.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn log_command(command: &str, args: &[&str]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_operation_start` is never used [INFO] [stdout] --> src/utils/logger.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn log_operation_start(operation: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_operation_end` is never used [INFO] [stdout] --> src/utils/logger.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn log_operation_end(operation: &str, success: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_error` is never used [INFO] [stdout] --> src/utils/logger.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_performance` is never used [INFO] [stdout] --> src/utils/logger.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn log_performance(operation: &str, duration_ms: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_config` is never used [INFO] [stdout] --> src/utils/logger.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn log_config(key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `log_user_action` is never used [INFO] [stdout] --> src/utils/logger.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn log_user_action(action: &str, details: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_structured_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn create_structured_logger() -> StructuredLogger { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StructuredLogger` is never constructed [INFO] [stdout] --> src/utils/logger.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | pub struct StructuredLogger { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LogEntry` is never constructed [INFO] [stdout] --> src/utils/logger.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 149 | struct LogEntry { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used [INFO] [stdout] --> src/utils/logger.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl StructuredLogger { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 157 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn log(&mut self, level: &str, target: &str, message: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn to_json(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn save_to_file(&self, path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_log_level_from_str` is never used [INFO] [stdout] --> src/utils/logger.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_log_level` is never used [INFO] [stdout] --> src/utils/logger.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn show_log_level() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_log_levels` is never used [INFO] [stdout] --> src/utils/logger.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | pub fn list_log_levels() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_simple_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_download_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_multi_step_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_hidden_progress_bar` is never used [INFO] [stdout] --> src/utils/progress.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `increment_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_success` is never used [INFO] [stdout] --> src/utils/progress.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_error` is never used [INFO] [stdout] --> src/utils/progress.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `finish_progress_warning` is never used [INFO] [stdout] --> src/utils/progress.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_parallel_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_progress` is never used [INFO] [stdout] --> src/utils/progress.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn with_progress(total: u64, message: &str, f: F) -> T [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_percentage` is never used [INFO] [stdout] --> src/utils/progress.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_counter` is never used [INFO] [stdout] --> src/utils/progress.rs:203:8 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn print_counter(current: usize, total: usize, label: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modern` is never used [INFO] [stdout] --> src/utils/progress.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn modern() -> ProgressStyle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `minimal` is never used [INFO] [stdout] --> src/utils/progress.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn minimal() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detailed` is never used [INFO] [stdout] --> src/utils/progress.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 240 | pub fn detailed() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `download` is never used [INFO] [stdout] --> src/utils/progress.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn download() -> ProgressStyle { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `upload` is never used [INFO] [stdout] --> src/utils/progress.rs:256:12 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn upload() -> ProgressStyle { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/build.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for BuildOptions { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self { [INFO] [stdout] 27 | | release: false, [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 18 + #[derive(Default)] [INFO] [stdout] 19 | pub struct BuildOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/build.rs:163:15 [INFO] [stdout] | [INFO] [stdout] 163 | .args(&["target", "list", "--installed"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["target", "list", "--installed"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/build.rs:181:15 [INFO] [stdout] | [INFO] [stdout] 181 | .args(&["target", "add", target]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["target", "add", target]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/build.rs:163:15 [INFO] [stdout] | [INFO] [stdout] 163 | .args(&["target", "list", "--installed"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["target", "list", "--installed"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/build.rs:181:15 [INFO] [stdout] | [INFO] [stdout] 181 | .args(&["target", "add", target]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["target", "add", target]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/ci.rs:114:26 [INFO] [stdout] | [INFO] [stdout] 114 | .with_prompt(&format!("{} existe déjà. Écraser ?", output_path)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{} existe déjà. Écraser ?", output_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/ci.rs:114:26 [INFO] [stdout] | [INFO] [stdout] 114 | .with_prompt(&format!("{} existe déjà. Écraser ?", output_path)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{} existe déjà. Écraser ?", output_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/deps.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | if !which::which("cargo-outdated").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-outdated").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/commands/deps.rs:197:8 [INFO] [stdout] | [INFO] [stdout] 197 | if !which::which("cargo-audit").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-audit").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/deps.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | if !which::which("cargo-outdated").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-outdated").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/commands/deps.rs:197:8 [INFO] [stdout] | [INFO] [stdout] 197 | if !which::which("cargo-audit").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-audit").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:338:15 [INFO] [stdout] | [INFO] [stdout] 338 | .args(&["install", "cargo-tree"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-tree"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:352:15 [INFO] [stdout] | [INFO] [stdout] 352 | .args(&["install", "cargo-outdated"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-outdated"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:366:15 [INFO] [stdout] | [INFO] [stdout] 366 | .args(&["install", "cargo-audit"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-audit"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:338:15 [INFO] [stdout] | [INFO] [stdout] 338 | .args(&["install", "cargo-tree"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-tree"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:352:15 [INFO] [stdout] | [INFO] [stdout] 352 | .args(&["install", "cargo-outdated"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-outdated"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/deps.rs:366:15 [INFO] [stdout] | [INFO] [stdout] 366 | .args(&["install", "cargo-audit"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-audit"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/doc.rs:139:19 [INFO] [stdout] | [INFO] [stdout] 139 | .args(&["deadlinks"]) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `["deadlinks"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/doc.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | if !which::which("cargo-watch").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-watch").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/doc.rs:139:19 [INFO] [stdout] | [INFO] [stdout] 139 | .args(&["deadlinks"]) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `["deadlinks"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/doc.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | if !which::which("cargo-watch").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-watch").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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands/lint.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | return Ok((true, 1)); [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] 119 - return Ok((true, 1)); [INFO] [stdout] 119 + Ok((true, 1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands/lint.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | return Ok((false, 1)); [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] 121 - return Ok((false, 1)); [INFO] [stdout] 121 + Ok((false, 1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/lint.rs:161:18 [INFO] [stdout] | [INFO] [stdout] 161 | cmd.args(&["--", "-D", "warnings"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--", "-D", "warnings"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands/lint.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | return Ok((true, 1)); [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] 119 - return Ok((true, 1)); [INFO] [stdout] 119 + Ok((true, 1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands/lint.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | return Ok((false, 1)); [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] 121 - return Ok((false, 1)); [INFO] [stdout] 121 + Ok((false, 1)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/lint.rs:161:18 [INFO] [stdout] | [INFO] [stdout] 161 | cmd.args(&["--", "-D", "warnings"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--", "-D", "warnings"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter_map()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/commands/logs.rs:136:49 [INFO] [stdout] | [INFO] [stdout] 136 | let all_lines: Vec = reader.lines().filter_map(|l| l.ok()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/commands/logs.rs:136:34 [INFO] [stdout] | [INFO] [stdout] 136 | let all_lines: Vec = reader.lines().filter_map(|l| l.ok()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter_map()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/commands/logs.rs:136:49 [INFO] [stdout] | [INFO] [stdout] 136 | let all_lines: Vec = reader.lines().filter_map(|l| l.ok()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/commands/logs.rs:136:34 [INFO] [stdout] | [INFO] [stdout] 136 | let all_lines: Vec = reader.lines().filter_map(|l| l.ok()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/commands/package.rs:92:18 [INFO] [stdout] | [INFO] [stdout] 92 | .or_else(|| get_project_name()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_project_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/commands/package.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 96 | .or_else(|| get_project_version()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_project_version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 135 | if !which::which("cargo-deb").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-deb").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:143:19 [INFO] [stdout] | [INFO] [stdout] 143 | .args(&["deb", "--output", &format!("{}/{}_{}_amd64.deb", output, name, version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["deb", "--output", &format!("{}/{}_{}_amd64.deb", output, name, version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if !which::which("cargo-rpm").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-rpm").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:177:19 [INFO] [stdout] | [INFO] [stdout] 177 | .args(&["rpm", "build"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `["rpm", "build"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:285:8 [INFO] [stdout] | [INFO] [stdout] 285 | if !fs::metadata(&binary).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&binary).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] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/commands/package.rs:92:18 [INFO] [stdout] | [INFO] [stdout] 92 | .or_else(|| get_project_name()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_project_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/commands/package.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 96 | .or_else(|| get_project_version()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_project_version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 135 | if !which::which("cargo-deb").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-deb").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:143:19 [INFO] [stdout] | [INFO] [stdout] 143 | .args(&["deb", "--output", &format!("{}/{}_{}_amd64.deb", output, name, version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["deb", "--output", &format!("{}/{}_{}_amd64.deb", output, name, version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:328:8 [INFO] [stdout] | [INFO] [stdout] 328 | if !fs::metadata(&binary).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&binary).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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:337:15 [INFO] [stdout] | [INFO] [stdout] 337 | .args(&["-j", &archive_name, &binary]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["-j", &archive_name, &binary]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if !which::which("cargo-rpm").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("cargo-rpm").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:177:19 [INFO] [stdout] | [INFO] [stdout] 177 | .args(&["rpm", "build"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `["rpm", "build"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:285:8 [INFO] [stdout] | [INFO] [stdout] 285 | if !fs::metadata(&binary).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&binary).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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:440:15 [INFO] [stdout] | [INFO] [stdout] 440 | .args(&["--print", "host-triple"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--print", "host-triple"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:468:15 [INFO] [stdout] | [INFO] [stdout] 468 | .args(&["install", "cargo-deb"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-deb"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:481:15 [INFO] [stdout] | [INFO] [stdout] 481 | .args(&["install", "cargo-rpm"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-rpm"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/package.rs:328:8 [INFO] [stdout] | [INFO] [stdout] 328 | if !fs::metadata(&binary).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&binary).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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:337:15 [INFO] [stdout] | [INFO] [stdout] 337 | .args(&["-j", &archive_name, &binary]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["-j", &archive_name, &binary]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:440:15 [INFO] [stdout] | [INFO] [stdout] 440 | .args(&["--print", "host-triple"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["--print", "host-triple"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:468:15 [INFO] [stdout] | [INFO] [stdout] 468 | .args(&["install", "cargo-deb"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-deb"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/package.rs:481:15 [INFO] [stdout] | [INFO] [stdout] 481 | .args(&["install", "cargo-rpm"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-rpm"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:133:15 [INFO] [stdout] | [INFO] [stdout] 133 | .args(&["rev-parse", version]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["rev-parse", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:197:14 [INFO] [stdout] | [INFO] [stdout] 197 | cmd.args(&["release", "create", version]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "create", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:243:18 [INFO] [stdout] | [INFO] [stdout] 243 | cmd.args(&["release", "create", version]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "create", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:279:23 [INFO] [stdout] | [INFO] [stdout] 279 | .args(&["release", "list", "--limit", &limit.to_string()]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "list", "--limit", &limit.to_string()]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:316:16 [INFO] [stdout] | [INFO] [stdout] 316 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:303:26 [INFO] [stdout] | [INFO] [stdout] 303 | .with_prompt(&format!("Supprimer définitivement {} ?", version)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("Supprimer définitivement {} ?", version)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:322:23 [INFO] [stdout] | [INFO] [stdout] 322 | .args(&["release", "delete", version, "--yes"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "delete", version, "--yes"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:348:16 [INFO] [stdout] | [INFO] [stdout] 348 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:354:23 [INFO] [stdout] | [INFO] [stdout] 354 | .args(&["release", "download", version, "--dir", output]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "download", version, "--dir", output]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:395:15 [INFO] [stdout] | [INFO] [stdout] 395 | .args(&["tag", "-a", version, "-m", &format!("Release {}", version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-a", version, "-m", &format!("Release {}", version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:404:15 [INFO] [stdout] | [INFO] [stdout] 404 | .args(&["push", "origin", version]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["push", "origin", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:133:15 [INFO] [stdout] | [INFO] [stdout] 133 | .args(&["rev-parse", version]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["rev-parse", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 421 | .args(&["log", "--pretty=format:- %s", "--no-merges", [INFO] [stdout] | _______________^ [INFO] [stdout] 422 | | &format!("{}..HEAD", get_previous_tag().unwrap_or_else(|| "HEAD~10".to_string()))]) [INFO] [stdout] | |__________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 421 ~ .args(["log", "--pretty=format:- %s", "--no-merges", [INFO] [stdout] 422 ~ &format!("{}..HEAD", get_previous_tag().unwrap_or_else(|| "HEAD~10".to_string()))]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/commands/release.rs:430:13 [INFO] [stdout] | [INFO] [stdout] 430 | notes.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `notes.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:197:14 [INFO] [stdout] | [INFO] [stdout] 197 | cmd.args(&["release", "create", version]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "create", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:443:15 [INFO] [stdout] | [INFO] [stdout] 443 | .args(&["describe", "--tags", "--abbrev=0", "HEAD~1"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["describe", "--tags", "--abbrev=0", "HEAD~1"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:243:18 [INFO] [stdout] | [INFO] [stdout] 243 | cmd.args(&["release", "create", version]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "create", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:279:23 [INFO] [stdout] | [INFO] [stdout] 279 | .args(&["release", "list", "--limit", &limit.to_string()]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "list", "--limit", &limit.to_string()]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:316:16 [INFO] [stdout] | [INFO] [stdout] 316 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:303:26 [INFO] [stdout] | [INFO] [stdout] 303 | .with_prompt(&format!("Supprimer définitivement {} ?", version)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("Supprimer définitivement {} ?", version)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:322:23 [INFO] [stdout] | [INFO] [stdout] 322 | .args(&["release", "delete", version, "--yes"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "delete", version, "--yes"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/release.rs:348:16 [INFO] [stdout] | [INFO] [stdout] 348 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:354:23 [INFO] [stdout] | [INFO] [stdout] 354 | .args(&["release", "download", version, "--dir", output]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["release", "download", version, "--dir", output]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:395:15 [INFO] [stdout] | [INFO] [stdout] 395 | .args(&["tag", "-a", version, "-m", &format!("Release {}", version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-a", version, "-m", &format!("Release {}", version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:404:15 [INFO] [stdout] | [INFO] [stdout] 404 | .args(&["push", "origin", version]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["push", "origin", version]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 421 | .args(&["log", "--pretty=format:- %s", "--no-merges", [INFO] [stdout] | _______________^ [INFO] [stdout] 422 | | &format!("{}..HEAD", get_previous_tag().unwrap_or_else(|| "HEAD~10".to_string()))]) [INFO] [stdout] | |__________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 421 ~ .args(["log", "--pretty=format:- %s", "--no-merges", [INFO] [stdout] 422 ~ &format!("{}..HEAD", get_previous_tag().unwrap_or_else(|| "HEAD~10".to_string()))]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/commands/release.rs:430:13 [INFO] [stdout] | [INFO] [stdout] 430 | notes.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `notes.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/release.rs:443:15 [INFO] [stdout] | [INFO] [stdout] 443 | .args(&["describe", "--tags", "--abbrev=0", "HEAD~1"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["describe", "--tags", "--abbrev=0", "HEAD~1"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/run.rs:140:15 [INFO] [stdout] | [INFO] [stdout] 140 | .args(&["install", "cargo-watch"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-watch"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/status.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / impl Default for StatusOptions { [INFO] [stdout] 20 | | fn default() -> Self { [INFO] [stdout] 21 | | Self { detailed: false } [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 15 + #[derive(Default)] [INFO] [stdout] 16 | pub struct StatusOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/run.rs:140:15 [INFO] [stdout] | [INFO] [stdout] 140 | .args(&["install", "cargo-watch"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["install", "cargo-watch"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/status.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / impl Default for StatusOptions { [INFO] [stdout] 20 | | fn default() -> Self { [INFO] [stdout] 21 | | Self { detailed: false } [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 15 + #[derive(Default)] [INFO] [stdout] 16 | pub struct StatusOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:242:16 [INFO] [stdout] | [INFO] [stdout] 242 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:250:23 [INFO] [stdout] | [INFO] [stdout] 250 | .args(&["auth", "status"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `["auth", "status"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:275:16 [INFO] [stdout] | [INFO] [stdout] 275 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:281:23 [INFO] [stdout] | [INFO] [stdout] 281 | .args(&["gist", "list"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `["gist", "list"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:313:15 [INFO] [stdout] | [INFO] [stdout] 313 | .args(&["-czf", backup_file.to_str().unwrap(), "-C", [INFO] [stdout] | _______________^ [INFO] [stdout] 314 | | config_dir.parent().unwrap().to_str().unwrap(), [INFO] [stdout] 315 | | ".devflow"]) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 313 ~ .args(["-czf", backup_file.to_str().unwrap(), "-C", [INFO] [stdout] 314 + config_dir.parent().unwrap().to_str().unwrap(), [INFO] [stdout] 315 ~ ".devflow"]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/test.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for TestOptions { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self { [INFO] [stdout] 27 | | unit: false, [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 17 + #[derive(Default)] [INFO] [stdout] 18 | pub struct TestOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/test.rs:140:15 [INFO] [stdout] | [INFO] [stdout] 140 | .args(&["test", "--", "--list"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["test", "--", "--list"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:242:16 [INFO] [stdout] | [INFO] [stdout] 242 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:250:23 [INFO] [stdout] | [INFO] [stdout] 250 | .args(&["auth", "status"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `["auth", "status"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/commands/sync.rs:275:16 [INFO] [stdout] | [INFO] [stdout] 275 | if !which::which("gh").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `which::which("gh").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] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:281:23 [INFO] [stdout] | [INFO] [stdout] 281 | .args(&["gist", "list"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `["gist", "list"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/sync.rs:313:15 [INFO] [stdout] | [INFO] [stdout] 313 | .args(&["-czf", backup_file.to_str().unwrap(), "-C", [INFO] [stdout] | _______________^ [INFO] [stdout] 314 | | config_dir.parent().unwrap().to_str().unwrap(), [INFO] [stdout] 315 | | ".devflow"]) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 313 ~ .args(["-czf", backup_file.to_str().unwrap(), "-C", [INFO] [stdout] 314 + config_dir.parent().unwrap().to_str().unwrap(), [INFO] [stdout] 315 ~ ".devflow"]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/commands/test.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for TestOptions { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self { [INFO] [stdout] 27 | | unit: false, [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 17 + #[derive(Default)] [INFO] [stdout] 18 | pub struct TestOptions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/test.rs:140:15 [INFO] [stdout] | [INFO] [stdout] 140 | .args(&["test", "--", "--list"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["test", "--", "--list"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/version.rs:329:15 [INFO] [stdout] | [INFO] [stdout] 329 | .args(&["tag", "-a", &tag_name, "-m", &format!("Version {}", version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-a", &tag_name, "-m", &format!("Version {}", version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/version.rs:344:15 [INFO] [stdout] | [INFO] [stdout] 344 | .args(&["tag", "-l", "v*"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-l", "v*"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/settings.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | / impl Default for GlobalConfig { [INFO] [stdout] 28 | | fn default() -> Self { [INFO] [stdout] 29 | | Self { [INFO] [stdout] 30 | | user: UserConfig::default(), [INFO] [stdout] ... | [INFO] [stdout] 37 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 10 + #[derive(Default)] [INFO] [stdout] 11 | pub struct GlobalConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/version.rs:329:15 [INFO] [stdout] | [INFO] [stdout] 329 | .args(&["tag", "-a", &tag_name, "-m", &format!("Version {}", version)]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-a", &tag_name, "-m", &format!("Version {}", version)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands/version.rs:344:15 [INFO] [stdout] | [INFO] [stdout] 344 | .args(&["tag", "-l", "v*"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `["tag", "-l", "v*"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/settings.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | / impl Default for GlobalConfig { [INFO] [stdout] 28 | | fn default() -> Self { [INFO] [stdout] 29 | | Self { [INFO] [stdout] 30 | | user: UserConfig::default(), [INFO] [stdout] ... | [INFO] [stdout] 37 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 10 + #[derive(Default)] [INFO] [stdout] 11 | pub struct GlobalConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/tui/app.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | / match self.state.current_tab { [INFO] [stdout] 208 | | Tab::Actions => { [INFO] [stdout] 209 | | // Exécute l'action sélectionnée [INFO] [stdout] 210 | | let actions = vec![ [INFO] [stdout] ... | [INFO] [stdout] 223 | | _ => {} [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 207 ~ if self.state.current_tab == Tab::Actions { [INFO] [stdout] 208 ~ // Exécute l'action sélectionnée [INFO] [stdout] 209 + let actions = vec![ [INFO] [stdout] 210 + ("lint", vec![]), [INFO] [stdout] 211 + ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 212 + ("doc", vec![]), [INFO] [stdout] 213 + ("clean", vec![]), [INFO] [stdout] 214 + ("deps", vec!["update".to_string()]), [INFO] [stdout] 215 + ("version", vec![]), [INFO] [stdout] 216 + ]; [INFO] [stdout] 217 + [INFO] [stdout] 218 + if let Some((name, args)) = actions.get(self.state.ui.selected_index) { [INFO] [stdout] 219 + self.execute_command(name.to_string(), args.clone())?; [INFO] [stdout] 220 + } [INFO] [stdout] 221 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/tui/runner.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | / for line in reader.lines() { [INFO] [stdout] 80 | | if let Ok(line) = line { [INFO] [stdout] 81 | | let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/tui/runner.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Ok(line) = line { [INFO] [stdout] 81 | | let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 79 ~ for line in reader.lines().flatten() { [INFO] [stdout] 80 + let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 81 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/tui/runner.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | / for line in reader.lines() { [INFO] [stdout] 93 | | if let Ok(line) = line { [INFO] [stdout] 94 | | let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 95 | | } [INFO] [stdout] 96 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/tui/runner.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | / if let Ok(line) = line { [INFO] [stdout] 94 | | let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 92 ~ for line in reader.lines().flatten() { [INFO] [stdout] 93 + let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 94 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/tui/app.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | / match self.state.current_tab { [INFO] [stdout] 208 | | Tab::Actions => { [INFO] [stdout] 209 | | // Exécute l'action sélectionnée [INFO] [stdout] 210 | | let actions = vec![ [INFO] [stdout] ... | [INFO] [stdout] 223 | | _ => {} [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 207 ~ if self.state.current_tab == Tab::Actions { [INFO] [stdout] 208 ~ // Exécute l'action sélectionnée [INFO] [stdout] 209 + let actions = vec![ [INFO] [stdout] 210 + ("lint", vec![]), [INFO] [stdout] 211 + ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 212 + ("doc", vec![]), [INFO] [stdout] 213 + ("clean", vec![]), [INFO] [stdout] 214 + ("deps", vec!["update".to_string()]), [INFO] [stdout] 215 + ("version", vec![]), [INFO] [stdout] 216 + ]; [INFO] [stdout] 217 + [INFO] [stdout] 218 + if let Some((name, args)) = actions.get(self.state.ui.selected_index) { [INFO] [stdout] 219 + self.execute_command(name.to_string(), args.clone())?; [INFO] [stdout] 220 + } [INFO] [stdout] 221 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/tui/runner.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | / for line in reader.lines() { [INFO] [stdout] 80 | | if let Ok(line) = line { [INFO] [stdout] 81 | | let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/tui/runner.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Ok(line) = line { [INFO] [stdout] 81 | | let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 79 ~ for line in reader.lines().flatten() { [INFO] [stdout] 80 + let _ = tx_stdout.send(OutputMessage::Stdout(line)); [INFO] [stdout] 81 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/tui/runner.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | / for line in reader.lines() { [INFO] [stdout] 93 | | if let Ok(line) = line { [INFO] [stdout] 94 | | let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 95 | | } [INFO] [stdout] 96 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/tui/runner.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | / if let Ok(line) = line { [INFO] [stdout] 94 | | let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 92 ~ for line in reader.lines().flatten() { [INFO] [stdout] 93 + let _ = tx_stderr.send(OutputMessage::Stderr(line)); [INFO] [stdout] 94 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/tui/screens/projects.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | / if state.mode == Mode::Editing { [INFO] [stdout] 262 | | state.projects.new_project_name.push(c); [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 260 ~ Action::Input(c) [INFO] [stdout] 261 ~ if state.mode == Mode::Editing => { [INFO] [stdout] 262 | state.projects.new_project_name.push(c); [INFO] [stdout] 263 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/tui/screens/projects.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | / if state.mode == Mode::Editing { [INFO] [stdout] 267 | | state.projects.new_project_name.pop(); [INFO] [stdout] 268 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 265 ~ Action::Backspace [INFO] [stdout] 266 ~ if state.mode == Mode::Editing => { [INFO] [stdout] 267 | state.projects.new_project_name.pop(); [INFO] [stdout] 268 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/tui/state.rs:425:1 [INFO] [stdout] | [INFO] [stdout] 425 | / impl Default for LogLevel { [INFO] [stdout] 426 | | fn default() -> Self { [INFO] [stdout] 427 | | LogLevel::Info [INFO] [stdout] 428 | | } [INFO] [stdout] 429 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 417 + #[derive(Default)] [INFO] [stdout] 418 | pub enum LogLevel { [INFO] [stdout] 419 ~ #[default] [INFO] [stdout] 420 ~ Info, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/tui/screens/projects.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | / if state.mode == Mode::Editing { [INFO] [stdout] 262 | | state.projects.new_project_name.push(c); [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 260 ~ Action::Input(c) [INFO] [stdout] 261 ~ if state.mode == Mode::Editing => { [INFO] [stdout] 262 | state.projects.new_project_name.push(c); [INFO] [stdout] 263 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/tui/screens/projects.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | / if state.mode == Mode::Editing { [INFO] [stdout] 267 | | state.projects.new_project_name.pop(); [INFO] [stdout] 268 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 265 ~ Action::Backspace [INFO] [stdout] 266 ~ if state.mode == Mode::Editing => { [INFO] [stdout] 267 | state.projects.new_project_name.pop(); [INFO] [stdout] 268 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/tui/state.rs:425:1 [INFO] [stdout] | [INFO] [stdout] 425 | / impl Default for LogLevel { [INFO] [stdout] 426 | | fn default() -> Self { [INFO] [stdout] 427 | | LogLevel::Info [INFO] [stdout] 428 | | } [INFO] [stdout] 429 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 417 + #[derive(Default)] [INFO] [stdout] 418 | pub enum LogLevel { [INFO] [stdout] 419 ~ #[default] [INFO] [stdout] 420 ~ Info, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/utils/progress.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 88 | let pb = ProgressBar::with_draw_target(Some(total), ProgressDrawTarget::hidden()); [INFO] [stdout] | ---------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 89 | pb [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 88 ~ [INFO] [stdout] 89 ~ ProgressBar::with_draw_target(Some(total), ProgressDrawTarget::hidden()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/utils/progress.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 88 | let pb = ProgressBar::with_draw_target(Some(total), ProgressDrawTarget::hidden()); [INFO] [stdout] | ---------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 89 | pb [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 88 ~ [INFO] [stdout] 89 ~ ProgressBar::with_draw_target(Some(total), ProgressDrawTarget::hidden()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/app.rs:210:31 [INFO] [stdout] | [INFO] [stdout] 210 | let actions = vec![ [INFO] [stdout] | _______________________________^ [INFO] [stdout] 211 | | ("lint", vec![]), [INFO] [stdout] 212 | | ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 213 | | ("doc", vec![]), [INFO] [stdout] ... | [INFO] [stdout] 216 | | ("version", vec![]), [INFO] [stdout] 217 | | ]; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 210 ~ let actions = [("lint", vec![]), [INFO] [stdout] 211 + ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 212 + ("doc", vec![]), [INFO] [stdout] 213 + ("clean", vec![]), [INFO] [stdout] 214 + ("deps", vec!["update".to_string()]), [INFO] [stdout] 215 ~ ("version", vec![])]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/screens/actions.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | let actions = vec![ [INFO] [stdout] | ___________________^ [INFO] [stdout] 24 | | ("L", "Lint (clippy)", "Vérification du code"), [INFO] [stdout] 25 | | ("F", "Format (rustfmt)", "Formatage automatique"), [INFO] [stdout] 26 | | ("D", "Doc", "Générer documentation"), [INFO] [stdout] ... | [INFO] [stdout] 29 | | ("V", "Version", "Gérer versions"), [INFO] [stdout] 30 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 23 ~ let actions = [("L", "Lint (clippy)", "Vérification du code"), [INFO] [stdout] 24 + ("F", "Format (rustfmt)", "Formatage automatique"), [INFO] [stdout] 25 ~ ("D", "Doc", "Générer documentation"), [INFO] [stdout] 26 + ("C", "Clean", "Nettoyer les artefacts"), [INFO] [stdout] 27 ~ ("U", "Update", "Mettre à jour dépendances"), [INFO] [stdout] 28 ~ ("V", "Version", "Gérer versions")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/screens/logs.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let filters = vec![ [INFO] [stdout] | ___________________^ [INFO] [stdout] 44 | | (LogLevel::Debug, "F6", "Debug"), [INFO] [stdout] 45 | | (LogLevel::Info, "F7", "Info"), [INFO] [stdout] 46 | | (LogLevel::Warning, "F8", "Warn"), [INFO] [stdout] 47 | | (LogLevel::Error, "F9", "Error"), [INFO] [stdout] 48 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 43 ~ let filters = [(LogLevel::Debug, "F6", "Debug"), [INFO] [stdout] 44 + (LogLevel::Info, "F7", "Info"), [INFO] [stdout] 45 + (LogLevel::Warning, "F8", "Warn"), [INFO] [stdout] 46 ~ (LogLevel::Error, "F9", "Error")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/state.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | let templates = vec!["default", "web", "cli", "lib"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["default", "web", "cli", "lib"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/app.rs:210:31 [INFO] [stdout] | [INFO] [stdout] 210 | let actions = vec![ [INFO] [stdout] | _______________________________^ [INFO] [stdout] 211 | | ("lint", vec![]), [INFO] [stdout] 212 | | ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 213 | | ("doc", vec![]), [INFO] [stdout] ... | [INFO] [stdout] 216 | | ("version", vec![]), [INFO] [stdout] 217 | | ]; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 210 ~ let actions = [("lint", vec![]), [INFO] [stdout] 211 + ("lint", vec!["--fix".to_string()]), [INFO] [stdout] 212 + ("doc", vec![]), [INFO] [stdout] 213 + ("clean", vec![]), [INFO] [stdout] 214 + ("deps", vec!["update".to_string()]), [INFO] [stdout] 215 ~ ("version", vec![])]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/screens/actions.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | let actions = vec![ [INFO] [stdout] | ___________________^ [INFO] [stdout] 24 | | ("L", "Lint (clippy)", "Vérification du code"), [INFO] [stdout] 25 | | ("F", "Format (rustfmt)", "Formatage automatique"), [INFO] [stdout] 26 | | ("D", "Doc", "Générer documentation"), [INFO] [stdout] ... | [INFO] [stdout] 29 | | ("V", "Version", "Gérer versions"), [INFO] [stdout] 30 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 23 ~ let actions = [("L", "Lint (clippy)", "Vérification du code"), [INFO] [stdout] 24 + ("F", "Format (rustfmt)", "Formatage automatique"), [INFO] [stdout] 25 ~ ("D", "Doc", "Générer documentation"), [INFO] [stdout] 26 + ("C", "Clean", "Nettoyer les artefacts"), [INFO] [stdout] 27 ~ ("U", "Update", "Mettre à jour dépendances"), [INFO] [stdout] 28 ~ ("V", "Version", "Gérer versions")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/screens/logs.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let filters = vec![ [INFO] [stdout] | ___________________^ [INFO] [stdout] 44 | | (LogLevel::Debug, "F6", "Debug"), [INFO] [stdout] 45 | | (LogLevel::Info, "F7", "Info"), [INFO] [stdout] 46 | | (LogLevel::Warning, "F8", "Warn"), [INFO] [stdout] 47 | | (LogLevel::Error, "F9", "Error"), [INFO] [stdout] 48 | | ]; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 43 ~ let filters = [(LogLevel::Debug, "F6", "Debug"), [INFO] [stdout] 44 + (LogLevel::Info, "F7", "Info"), [INFO] [stdout] 45 + (LogLevel::Warning, "F8", "Warn"), [INFO] [stdout] 46 ~ (LogLevel::Error, "F9", "Error")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tui/state.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | let templates = vec!["default", "web", "cli", "lib"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["default", "web", "cli", "lib"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "3b1f3ba294974afb19095942b0626fc480d305389453fc53032efa0fa9c086dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b1f3ba294974afb19095942b0626fc480d305389453fc53032efa0fa9c086dc", kill_on_drop: false }` [INFO] [stdout] 3b1f3ba294974afb19095942b0626fc480d305389453fc53032efa0fa9c086dc