[INFO] cloning repository https://github.com/distributedstatemachine/lium-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/distributedstatemachine/lium-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdistributedstatemachine%2Flium-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdistributedstatemachine%2Flium-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 96eb30727da504324176480eb1dce7f3157f472d [INFO] linting distributedstatemachine/lium-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdistributedstatemachine%2Flium-rs" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/distributedstatemachine/lium-rs [INFO] finished tweaking git repo https://github.com/distributedstatemachine/lium-rs [INFO] tweaked toml for git repo https://github.com/distributedstatemachine/lium-rs written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/distributedstatemachine/lium-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/distributedstatemachine/lium-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.5.39 [INFO] [stderr] Downloaded ssh2 v0.9.5 [INFO] [stderr] Downloaded clap_builder v4.5.39 [INFO] [stderr] Downloaded cc v1.2.26 [INFO] [stderr] Downloaded libz-sys v1.1.22 [INFO] [stderr] Downloaded libssh2-sys v0.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 92a0ed96cdcfacf2bf2ff1dd788042e4fa149e3fbb8c8b311c2210fef6834acb [INFO] running `Command { std: "docker" "start" "-a" "92a0ed96cdcfacf2bf2ff1dd788042e4fa149e3fbb8c8b311c2210fef6834acb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "92a0ed96cdcfacf2bf2ff1dd788042e4fa149e3fbb8c8b311c2210fef6834acb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "92a0ed96cdcfacf2bf2ff1dd788042e4fa149e3fbb8c8b311c2210fef6834acb", kill_on_drop: false }` [INFO] [stdout] 92a0ed96cdcfacf2bf2ff1dd788042e4fa149e3fbb8c8b311c2210fef6834acb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 7a011b12741bce2b597b3f14c11ae76ffd181fd288016e211fefbaf4d1a57583 [INFO] running `Command { std: "docker" "start" "-a" "7a011b12741bce2b597b3f14c11ae76ffd181fd288016e211fefbaf4d1a57583", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling cc v1.2.26 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking unicode-width v0.2.0 [INFO] [stderr] Checking winnow v0.7.10 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking clap_builder v4.5.39 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking which v4.4.2 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking dialoguer v0.11.0 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking clap v4.5.39 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking ssh2 v0.9.5 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_with v3.12.0 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking hyper-util v0.1.14 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking hyperlocal-next v0.9.0 [INFO] [stderr] Checking lium-core v0.1.0 (/opt/rustwide/workdir/crates/lium-core) [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/lium-core/src/utils.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | executors.sort_by(|a, b| b.gpu_count.cmp(&a.gpu_count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 97 - executors.sort_by(|a, b| b.gpu_count.cmp(&a.gpu_count)); [INFO] [stdout] 97 + executors.sort_by_key(|b| std::cmp::Reverse(b.gpu_count)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking toml v0.8.23 [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/lium-core/src/utils.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | executors.sort_by(|a, b| b.gpu_count.cmp(&a.gpu_count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 97 - executors.sort_by(|a, b| b.gpu_count.cmp(&a.gpu_count)); [INFO] [stdout] 97 + executors.sort_by_key(|b| std::cmp::Reverse(b.gpu_count)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking bollard-stubs v1.44.0-rc.2 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking bollard v0.16.1 [INFO] [stderr] Checking lium-utils v0.1.0 (/opt/rustwide/workdir/crates/lium-utils) [INFO] [stdout] warning: struct `MockIdGenerator` is never constructed [INFO] [stdout] --> crates/lium-utils/src/id_generator.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | struct MockIdGenerator { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/lium-utils/src/ssh.rs:272:1 [INFO] [stdout] | [INFO] [stdout] 272 | / pub fn execute_rsync_command( [INFO] [stdout] 273 | | host: &str, [INFO] [stdout] 274 | | port: u16, [INFO] [stdout] 275 | | user: &str, [INFO] [stdout] ... | [INFO] [stdout] 280 | | is_upload: bool, [INFO] [stdout] 281 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/lium-utils/src/ssh.rs:272:1 [INFO] [stdout] | [INFO] [stdout] 272 | / pub fn execute_rsync_command( [INFO] [stdout] 273 | | host: &str, [INFO] [stdout] 274 | | port: u16, [INFO] [stdout] 275 | | user: &str, [INFO] [stdout] ... | [INFO] [stdout] 280 | | is_upload: bool, [INFO] [stdout] 281 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking lium-api v0.1.0 (/opt/rustwide/workdir/crates/lium-api) [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> crates/lium-api/src/client.rs:982:9 [INFO] [stdout] | [INFO] [stdout] 982 | /// (e.g., pod ID, command to execute, timeout settings) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> crates/lium-api/src/client.rs:982:9 [INFO] [stdout] | [INFO] [stdout] 982 | /// (e.g., pod ID, command to execute, timeout settings) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking lium-cli v0.1.0 (/opt/rustwide/workdir/crates/lium-cli) [INFO] [stdout] warning: unused imports: `error`, `info`, and `warn` [INFO] [stdout] --> crates/lium-cli/src/commands/exec.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{debug, error, info, warn}; [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 import: `PathBuf` [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, and `warn` [INFO] [stdout] --> crates/lium-cli/src/commands/exec.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{debug, error, info, warn}; [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: `debug` and `info` [INFO] [stdout] --> crates/lium-cli/src/commands/ps.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, info}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, and `warn` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, error, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_warning` [INFO] [stdout] --> crates/lium-cli/src/commands/scp.rs:3:55 [INFO] [stdout] | [INFO] [stdout] 3 | display::{print_error, print_info, print_success, print_warning}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> crates/lium-cli/src/commands/scp.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `validate_docker_image` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:13:41 [INFO] [stdout] | [INFO] [stdout] 13 | parse_port_mappings, sort_by_price, validate_docker_image, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `info` [INFO] [stdout] --> crates/lium-cli/src/commands/ps.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, info}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, and `warn` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, error, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_warning` [INFO] [stdout] --> crates/lium-cli/src/commands/scp.rs:3:55 [INFO] [stdout] | [INFO] [stdout] 3 | display::{print_error, print_info, print_success, print_warning}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> crates/lium-cli/src/commands/scp.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `validate_docker_image` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:13:41 [INFO] [stdout] | [INFO] [stdout] 13 | parse_port_mappings, sort_by_price, validate_docker_image, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> crates/lium-cli/src/display.rs:883:1 [INFO] [stdout] | [INFO] [stdout] 883 | / /// ``` [INFO] [stdout] 884 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 904 | pub fn prompt_confirm(message: &str, default: bool) -> Result { [INFO] [stdout] | --------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 884 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> crates/lium-cli/src/display.rs:982:1 [INFO] [stdout] | [INFO] [stdout] 982 | / /// terminal styling. [INFO] [stdout] 983 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 993 | pub fn print_success(message: &str) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 983 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> crates/lium-cli/src/display.rs:883:1 [INFO] [stdout] | [INFO] [stdout] 883 | / /// ``` [INFO] [stdout] 884 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 904 | pub fn prompt_confirm(message: &str, default: bool) -> Result { [INFO] [stdout] | --------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 884 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> crates/lium-cli/src/display.rs:982:1 [INFO] [stdout] | [INFO] [stdout] 982 | / /// terminal styling. [INFO] [stdout] 983 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 993 | pub fn print_success(message: &str) { [INFO] [stdout] | -------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 983 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/config.rs:100:49 [INFO] [stdout] | [INFO] [stdout] 100 | async fn handle_set(key: String, value: String, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/config.rs:108:34 [INFO] [stdout] | [INFO] [stdout] 108 | async fn handle_get(key: String, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/fund.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | async fn handle_add(amount: f64, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/config.rs:100:49 [INFO] [stdout] | [INFO] [stdout] 100 | async fn handle_set(key: String, value: String, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/config.rs:108:34 [INFO] [stdout] | [INFO] [stdout] 108 | async fn handle_get(key: String, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/fund.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | async fn handle_add(amount: f64, config: &Config) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `progress` is assigned to, but never used [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | let mut progress = false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_progress` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `progress` is never read [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:283:17 [INFO] [stdout] | [INFO] [stdout] 283 | progress = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/theme.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | let config = config.clone(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `progress` is assigned to, but never used [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | let mut progress = false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_progress` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `progress` is never read [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:283:17 [INFO] [stdout] | [INFO] [stdout] 283 | progress = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> crates/lium-cli/src/commands/theme.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | let config = config.clone(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `storage` [INFO] [stdout] --> crates/lium-cli/src/storage.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | let storage = PodSelectionStorage; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pods` [INFO] [stdout] --> crates/lium-cli/src/storage.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | let pods = vec![PodInfo { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pods` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:284:37 [INFO] [stdout] | [INFO] [stdout] 284 | let image_display = template [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 285 | | .docker_image [INFO] [stdout] 286 | | .split('/') [INFO] [stdout] 287 | | .last() [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 287 - .last() [INFO] [stdout] 287 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:400:55 [INFO] [stdout] | [INFO] [stdout] 400 | if template.docker_image.contains(&image_digest) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `image_digest` [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: unneeded `return` statement [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | / return Err(CliError::InvalidInput( [INFO] [stdout] 304 | | "SSH key generation required".to_string(), [INFO] [stdout] 305 | | )); [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] 303 ~ Err(CliError::InvalidInput( [INFO] [stdout] 304 + "SSH key generation required".to_string(), [INFO] [stdout] 305 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | / return Err(CliError::InvalidInput( [INFO] [stdout] 329 | | "Public key generation required".to_string(), [INFO] [stdout] 330 | | )); [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] 328 ~ Err(CliError::InvalidInput( [INFO] [stdout] 329 + "Public key generation required".to_string(), [INFO] [stdout] 330 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:425:67 [INFO] [stdout] | [INFO] [stdout] 425 | let relative_part = path.strip_prefix("~/").unwrap_or(&path[1..]); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | let expanded = if path.starts_with('~') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 423 ~ let expanded = if let Some() = path.strip_prefix('~') { [INFO] [stdout] 424 | if let Some(home_dir) = dirs::home_dir() { [INFO] [stdout] 425 ~ let relative_part = path.strip_prefix("~/").unwrap_or(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> crates/lium-cli/src/commands/ls.rs:452:29 [INFO] [stdout] | [INFO] [stdout] 452 | fn apply_sorting(executors: &mut Vec, args: &LsArgs) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 452 - fn apply_sorting(executors: &mut Vec, args: &LsArgs) { [INFO] [stdout] 452 + fn apply_sorting(executors: &mut [lium_core::ExecutorInfo], args: &LsArgs) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:284:37 [INFO] [stdout] | [INFO] [stdout] 284 | let image_display = template [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 285 | | .docker_image [INFO] [stdout] 286 | | .split('/') [INFO] [stdout] 287 | | .last() [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 287 - .last() [INFO] [stdout] 287 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/lium-cli/src/commands/image.rs:400:55 [INFO] [stdout] | [INFO] [stdout] 400 | if template.docker_image.contains(&image_digest) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `image_digest` [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: unneeded `return` statement [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | / return Err(CliError::InvalidInput( [INFO] [stdout] 304 | | "SSH key generation required".to_string(), [INFO] [stdout] 305 | | )); [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] 303 ~ Err(CliError::InvalidInput( [INFO] [stdout] 304 + "SSH key generation required".to_string(), [INFO] [stdout] 305 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | / return Err(CliError::InvalidInput( [INFO] [stdout] 329 | | "Public key generation required".to_string(), [INFO] [stdout] 330 | | )); [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] 328 ~ Err(CliError::InvalidInput( [INFO] [stdout] 329 + "Public key generation required".to_string(), [INFO] [stdout] 330 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:368:12 [INFO] [stdout] | [INFO] [stdout] 368 | if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 368 - if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] 368 + if !(!is_upload && resolved_pods.len() != 1) { [INFO] [stdout] | [INFO] [stdout] 368 - if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] 368 + if is_upload || resolved_pods.len() == 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:425:67 [INFO] [stdout] | [INFO] [stdout] 425 | let relative_part = path.strip_prefix("~/").unwrap_or(&path[1..]); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/lium-cli/src/commands/init.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | let expanded = if path.starts_with('~') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 423 ~ let expanded = if let Some() = path.strip_prefix('~') { [INFO] [stdout] 424 | if let Some(home_dir) = dirs::home_dir() { [INFO] [stdout] 425 ~ let relative_part = path.strip_prefix("~/").unwrap_or(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:408:33 [INFO] [stdout] | [INFO] [stdout] 408 | print_info(&format!(" 📦 Trying to install rsync...")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `" 📦 Trying to install rsync...".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> crates/lium-cli/src/commands/ls.rs:452:29 [INFO] [stdout] | [INFO] [stdout] 452 | fn apply_sorting(executors: &mut Vec, args: &LsArgs) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 452 - fn apply_sorting(executors: &mut Vec, args: &LsArgs) { [INFO] [stdout] 452 + fn apply_sorting(executors: &mut [lium_core::ExecutorInfo], args: &LsArgs) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> crates/lium-cli/src/commands/ssh.rs:118:58 [INFO] [stdout] | [INFO] [stdout] 118 | let resolved_pods = resolve_pod_targets(&api_client, &[pod_target.clone()]).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&pod_target)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:310:38 [INFO] [stdout] | [INFO] [stdout] 310 | print_error(&format!("DEBUG: API call to get_templates() failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: API call to get_templates() failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:368:12 [INFO] [stdout] | [INFO] [stdout] 368 | if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 368 - if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] 368 + if !(!is_upload && resolved_pods.len() != 1) { [INFO] [stdout] | [INFO] [stdout] 368 - if is_upload || (!is_upload && resolved_pods.len() == 1) { [INFO] [stdout] 368 + if is_upload || resolved_pods.len() == 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:358:34 [INFO] [stdout] | [INFO] [stdout] 358 | print_error(&format!("DEBUG: API call to get_templates() failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: API call to get_templates() failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/rsync.rs:408:33 [INFO] [stdout] | [INFO] [stdout] 408 | print_info(&format!(" 📦 Trying to install rsync...")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `" 📦 Trying to install rsync...".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:543:26 [INFO] [stdout] | [INFO] [stdout] 543 | print_error(&format!("DEBUG: rent_pod API call failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: rent_pod API call failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/lium-cli/src/config.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | /// Set SSH public key path [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 248 | /// Set SSH public key path [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/lium-cli/src/config.rs:577:33 [INFO] [stdout] | [INFO] [stdout] 577 | tokio::task::spawn_blocking(|| Config::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Config::new` [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: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> crates/lium-cli/src/commands/ssh.rs:118:58 [INFO] [stdout] | [INFO] [stdout] 118 | let resolved_pods = resolve_pod_targets(&api_client, &[pod_target.clone()]).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&pod_target)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `as_ref.map(...)` does nothing [INFO] [stdout] --> crates/lium-cli/src/display.rs:518:23 [INFO] [stdout] | [INFO] [stdout] 518 | let ssh_cmd = pod [INFO] [stdout] | _______________________^ [INFO] [stdout] 519 | | .ssh_cmd [INFO] [stdout] 520 | | .as_ref() [INFO] [stdout] 521 | | .map(|cmd| cmd.clone()) [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stdout] = note: `#[warn(clippy::useless_asref)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 518 ~ let ssh_cmd = pod [INFO] [stdout] 519 + .ssh_cmd.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:310:38 [INFO] [stdout] | [INFO] [stdout] 310 | print_error(&format!("DEBUG: API call to get_templates() failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: API call to get_templates() failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:358:34 [INFO] [stdout] | [INFO] [stdout] 358 | print_error(&format!("DEBUG: API call to get_templates() failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: API call to get_templates() failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function can be simplified using the `async fn` syntax [INFO] [stdout] --> crates/lium-cli/src/resolvers.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn resolve_targets( [INFO] [stdout] 33 | | &self, [INFO] [stdout] 34 | | target_inputs: &[Self::Input], [INFO] [stdout] 35 | | ) -> impl Future>> + Send { [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn [INFO] [stdout] = note: `#[warn(clippy::manual_async_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/lium-cli/src/commands/up.rs:543:26 [INFO] [stdout] | [INFO] [stdout] 543 | print_error(&format!("DEBUG: rent_pod API call failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"DEBUG: rent_pod API call failed".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/lium-cli/src/config.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | /// Set SSH public key path [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 248 | /// Set SSH public key path [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/lium-cli/src/config.rs:577:33 [INFO] [stdout] | [INFO] [stdout] 577 | tokio::task::spawn_blocking(|| Config::new()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Config::new` [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: this call to `as_ref.map(...)` does nothing [INFO] [stdout] --> crates/lium-cli/src/display.rs:518:23 [INFO] [stdout] | [INFO] [stdout] 518 | let ssh_cmd = pod [INFO] [stdout] | _______________________^ [INFO] [stdout] 519 | | .ssh_cmd [INFO] [stdout] 520 | | .as_ref() [INFO] [stdout] 521 | | .map(|cmd| cmd.clone()) [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stdout] = note: `#[warn(clippy::useless_asref)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 518 ~ let ssh_cmd = pod [INFO] [stdout] 519 + .ssh_cmd.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function can be simplified using the `async fn` syntax [INFO] [stdout] --> crates/lium-cli/src/resolvers.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn resolve_targets( [INFO] [stdout] 33 | | &self, [INFO] [stdout] 34 | | target_inputs: &[Self::Input], [INFO] [stdout] 35 | | ) -> impl Future>> + Send { [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn [INFO] [stdout] = note: `#[warn(clippy::manual_async_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking lium-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> crates/lium-cli/src/commands/ps.rs:485:20 [INFO] [stdout] | [INFO] [stdout] 485 | let pods = vec![ [INFO] [stdout] | ____________________^ [INFO] [stdout] 486 | | create_test_pod("1", "running", "RTX4090"), [INFO] [stdout] 487 | | create_test_pod("2", "stopped", "H100"), [INFO] [stdout] 488 | | create_test_pod("3", "starting", "RTX4090"), [INFO] [stdout] 489 | | ]; [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] 485 ~ let pods = [create_test_pod("1", "running", "RTX4090"), [INFO] [stdout] 486 + create_test_pod("2", "stopped", "H100"), [INFO] [stdout] 487 ~ create_test_pod("3", "starting", "RTX4090")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> crates/lium-cli/src/commands/ps.rs:498:20 [INFO] [stdout] | [INFO] [stdout] 498 | let pods = vec![ [INFO] [stdout] | ____________________^ [INFO] [stdout] 499 | | create_test_pod("1", "running", "RTX4090"), [INFO] [stdout] 500 | | create_test_pod("2", "running", "H100"), [INFO] [stdout] 501 | | create_test_pod("3", "running", "RTX4090"), [INFO] [stdout] 502 | | ]; [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] 498 ~ let pods = [create_test_pod("1", "running", "RTX4090"), [INFO] [stdout] 499 + create_test_pod("2", "running", "H100"), [INFO] [stdout] 500 ~ create_test_pod("3", "running", "RTX4090")]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> crates/lium-cli/src/storage.rs:134:20 [INFO] [stdout] | [INFO] [stdout] 134 | let pods = vec![PodInfo { [INFO] [stdout] | ____________________^ [INFO] [stdout] 135 | | id: "pod1".to_string(), [INFO] [stdout] 136 | | name: "test-pod".to_string(), [INFO] [stdout] 137 | | huid: "brave-cat-1234".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 144 | | template: json!({}), [INFO] [stdout] 145 | | }]; [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] 134 ~ let pods = [PodInfo { [INFO] [stdout] 135 + id: "pod1".to_string(), [INFO] [stdout] 136 + name: "test-pod".to_string(), [INFO] [stdout] 137 + huid: "brave-cat-1234".to_string(), [INFO] [stdout] 138 + status: "running".to_string(), [INFO] [stdout] 139 + ssh_cmd: None, [INFO] [stdout] 140 + ports: Default::default(), [INFO] [stdout] 141 + created_at: Some(chrono::Utc::now()), [INFO] [stdout] 142 + updated_at: Some(chrono::Utc::now()), [INFO] [stdout] 143 + executor: json!({}), [INFO] [stdout] 144 + template: json!({}), [INFO] [stdout] 145 ~ }]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.80s [INFO] running `Command { std: "docker" "inspect" "7a011b12741bce2b597b3f14c11ae76ffd181fd288016e211fefbaf4d1a57583", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7a011b12741bce2b597b3f14c11ae76ffd181fd288016e211fefbaf4d1a57583", kill_on_drop: false }` [INFO] [stdout] 7a011b12741bce2b597b3f14c11ae76ffd181fd288016e211fefbaf4d1a57583