[INFO] cloning repository https://github.com/Yui100901/rs-utils
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Yui100901/rs-utils" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYui100901%2Frs-utils", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYui100901%2Frs-utils'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b640f5f11fe1f59483f4fdc5a601b3720970b768
[INFO] checking Yui100901/rs-utils against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYui100901%2Frs-utils" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Yui100901/rs-utils
[INFO] finished tweaking git repo https://github.com/Yui100901/rs-utils
[INFO] tweaked toml for git repo https://github.com/Yui100901/rs-utils written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Yui100901/rs-utils on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Yui100901/rs-utils 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: version requirement `0.9.34+deprecated` for dependency `serde_yaml` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_generator v2.7.13
[INFO] [stderr]   Downloaded pest_meta v2.7.13
[INFO] [stderr]   Downloaded pest_derive v2.7.13
[INFO] [stderr]   Downloaded rustls-pki-types v1.9.0
[INFO] [stderr]   Downloaded pest v2.7.13
[INFO] [stderr]   Downloaded reqwest v0.12.8
[INFO] [stderr]   Downloaded cc v1.1.28
[INFO] [stderr]   Downloaded rustls v0.23.14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ab510f9c2617a1e739e9815cddc497a99e1b0390d2a9fca6af6ea1547e7fa6d1
[INFO] running `Command { std: "docker" "start" "-a" "ab510f9c2617a1e739e9815cddc497a99e1b0390d2a9fca6af6ea1547e7fa6d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab510f9c2617a1e739e9815cddc497a99e1b0390d2a9fca6af6ea1547e7fa6d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab510f9c2617a1e739e9815cddc497a99e1b0390d2a9fca6af6ea1547e7fa6d1", kill_on_drop: false }`
[INFO] [stdout] ab510f9c2617a1e739e9815cddc497a99e1b0390d2a9fca6af6ea1547e7fa6d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b742ed482d904c07afac654a0e6dd84a526c3a7ed7c4afa0f4fd77ad6146bc22
[INFO] running `Command { std: "docker" "start" "-a" "b742ed482d904c07afac654a0e6dd84a526c3a7ed7c4afa0f4fd77ad6146bc22", kill_on_drop: false }`
[INFO] [stderr] warning: version requirement `0.9.34+deprecated` for dependency `serde_yaml` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]     Checking bytes v1.7.2
[INFO] [stderr]    Compiling cc v1.1.28
[INFO] [stderr]     Checking hashbrown v0.15.0
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling openssl v0.10.66
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking unicode-bidi v0.3.17
[INFO] [stderr]     Checking winnow v0.6.20
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking ordered-multimap v0.6.0
[INFO] [stderr]     Checking rustls-pki-types v1.9.0
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking url v2.5.2
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking regex-automata v0.4.8
[INFO] [stderr]     Checking rust-ini v0.19.0
[INFO] [stderr]     Checking clap_builder v4.5.20
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking sync_wrapper v1.0.1
[INFO] [stderr]     Checking ipnet v2.10.1
[INFO] [stderr]     Checking pathdiff v0.2.1
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.83
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stderr]     Checking regex v1.11.0
[INFO] [stderr]     Checking env_filter v0.1.2
[INFO] [stderr]     Checking tokio v1.40.0
[INFO] [stderr]     Checking env_logger v0.11.5
[INFO] [stderr]     Checking pest v2.7.13
[INFO] [stderr]     Checking clap v4.5.20
[INFO] [stderr]    Compiling pest_meta v2.7.13
[INFO] [stderr]    Compiling pest_generator v2.7.13
[INFO] [stderr]    Compiling pest_derive v2.7.13
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking serde_spanned v0.6.8
[INFO] [stderr]     Checking toml_datetime v0.6.8
[INFO] [stderr]     Checking serde_json v1.0.133
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking toml_edit v0.22.22
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking h2 v0.4.6
[INFO] [stderr]     Checking toml v0.8.19
[INFO] [stderr]     Checking config v0.14.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking hyper-util v0.1.9
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.8
[INFO] [stderr]     Checking rs-utils v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]   --> src/command_utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let stderr = stderr_handle
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `builder::Builder` is more private than the item `Project::builder_vec`
[INFO] [stdout]   --> src/build_utils/project.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub builder_vec: Vec<(String, Box<dyn builder::Builder>)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Project::builder_vec` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `builder::Builder` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/build_utils/builder.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) trait Builder: Debug {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Maven {
[INFO] [stdout]    |                   ----- field in this struct
[INFO] [stdout] 12 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Maven` 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: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct Gradle {
[INFO] [stdout]    |                   ------ field in this struct
[INFO] [stdout] 31 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gradle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Python {
[INFO] [stdout]    |                   ------ field in this struct
[INFO] [stdout] 50 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Python` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) struct Node {
[INFO] [stdout]    |                   ---- field in this struct
[INFO] [stdout] 78 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) struct Go {
[INFO] [stdout]     |                   -- field in this struct
[INFO] [stdout] 116 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Go` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub(crate) struct C {
[INFO] [stdout]     |                   - field in this struct
[INFO] [stdout] 137 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `C` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub(crate) struct Rust {
[INFO] [stdout]     |                   ---- field in this struct
[INFO] [stdout] 157 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Rust` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub(crate) struct Docker {
[INFO] [stdout]     |                   ------ field in this struct
[INFO] [stdout] 176 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Docker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `Cmd` is never read
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Config {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `restart_policy` is never read
[INFO] [stdout]    --> src/docker_utils/container_info.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct DockerCommand {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     restart_policy: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Source` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Source: String,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `source`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Destination` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Destination: String,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to snake case: `destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mode` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Mode: String,
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case: `mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostPort` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     HostPort: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `host_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PortBindings` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     PortBindings: HashMap<String, Vec<PortBinding>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `port_bindings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `RestartPolicy` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     RestartPolicy: RestartPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `restart_policy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AutoRemove` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     AutoRemove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `auto_remove`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Privileged` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Privileged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `privileged`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PublishAllPorts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     PublishAllPorts: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `publish_all_ports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `User` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     User: Option<String>,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Env` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Env: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cmd` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Image` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Image: String,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case (notice the capitalization): `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub Name: String,
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Config` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Config: Config,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostConfig` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     HostConfig: HostConfig,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `host_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mounts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Mounts: Vec<Mount>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mounts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]   --> src/command_utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let stderr = stderr_handle
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `command`
[INFO] [stdout]  --> src/bin/dm.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{command, CommandFactory, Parser, Subcommand};
[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: `warn`
[INFO] [stdout]  --> src/bin/dm.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{error, info, warn};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rs_utils::command_utils::run_command`
[INFO] [stdout]  --> src/bin/dm.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rs_utils::command_utils::run_command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/bin/dm.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/bin/dm.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::process::Command;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `command`
[INFO] [stdout]  --> src/bin/dm.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{command, CommandFactory, Parser, Subcommand};
[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: `warn`
[INFO] [stdout]  --> src/bin/dm.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{error, info, warn};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rs_utils::command_utils::run_command`
[INFO] [stdout]  --> src/bin/dm.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rs_utils::command_utils::run_command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/bin/dm.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/bin/dm.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::process::Command;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `builder::Builder` is more private than the item `Project::builder_vec`
[INFO] [stdout]   --> src/build_utils/project.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub builder_vec: Vec<(String, Box<dyn builder::Builder>)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Project::builder_vec` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `builder::Builder` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/build_utils/builder.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) trait Builder: Debug {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Maven {
[INFO] [stdout]    |                   ----- field in this struct
[INFO] [stdout] 12 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Maven` 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: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct Gradle {
[INFO] [stdout]    |                   ------ field in this struct
[INFO] [stdout] 31 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gradle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Python {
[INFO] [stdout]    |                   ------ field in this struct
[INFO] [stdout] 50 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Python` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/build_utils/builder.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) struct Node {
[INFO] [stdout]    |                   ---- field in this struct
[INFO] [stdout] 78 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) struct Go {
[INFO] [stdout]     |                   -- field in this struct
[INFO] [stdout] 116 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Go` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub(crate) struct C {
[INFO] [stdout]     |                   - field in this struct
[INFO] [stdout] 137 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `C` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub(crate) struct Rust {
[INFO] [stdout]     |                   ---- field in this struct
[INFO] [stdout] 157 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Rust` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]    --> src/build_utils/builder.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub(crate) struct Docker {
[INFO] [stdout]     |                   ------ field in this struct
[INFO] [stdout] 176 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Docker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `Cmd` is never read
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Config {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `restart_policy` is never read
[INFO] [stdout]    --> src/docker_utils/container_info.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct DockerCommand {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     restart_policy: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Source` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Source: String,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `source`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Destination` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Destination: String,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to snake case: `destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mode` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Mode: String,
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case: `mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostPort` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     HostPort: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `host_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PortBindings` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     PortBindings: HashMap<String, Vec<PortBinding>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `port_bindings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `RestartPolicy` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     RestartPolicy: RestartPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `restart_policy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AutoRemove` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     AutoRemove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `auto_remove`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Privileged` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Privileged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `privileged`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PublishAllPorts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     PublishAllPorts: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `publish_all_ports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `User` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     User: Option<String>,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Env` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Env: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cmd` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Image` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Image: String,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case (notice the capitalization): `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub Name: String,
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Config` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Config: Config,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostConfig` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     HostConfig: HostConfig,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `host_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mounts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Mounts: Vec<Mount>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mounts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::http_utils::HttpUtils`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::http_utils::HttpUtils;
[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: `reqwest::Client`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use reqwest::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/bin/dm.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Commands::Rerun { path } => {}
[INFO] [stdout]    |                               ^^^^ help: try ignoring the field: `path: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::http_utils::HttpUtils`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::http_utils::HttpUtils;
[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: `reqwest::Client`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use reqwest::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/bin/dm.rs:69:31
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Commands::Rerun { path } => {}
[INFO] [stdout]    |                               ^^^^ help: try ignoring the field: `path: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]   --> src/command_utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let stderr = stderr_handle
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let api_url = "http://42.192.69.243:20379";
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Obstacle` is never constructed
[INFO] [stdout]   --> src/main.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |     struct Obstacle {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoutePlanRequest` is never constructed
[INFO] [stdout]   --> src/main.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     struct RoutePlanRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `post_by_json` and `post_by_form` are never used
[INFO] [stdout]    --> src/http_utils/mod.rs:93:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl HttpUtils {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub async fn post_by_json<T: Serialize>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn post_by_form(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Builder` is never used
[INFO] [stdout]  --> src/build_utils/builder.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) trait Builder: Debug {
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Maven` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Maven {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Maven {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 16 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gradle` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct Gradle {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Gradle {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 35 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Python` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Python {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Python {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 54 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:77:19
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) struct Node {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Node {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 82 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Go` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:115:19
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) struct Go {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Go {
[INFO] [stdout]     | ------- associated function in this implementation
[INFO] [stdout] 120 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `C` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub(crate) struct C {
[INFO] [stdout]     |                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:141:19
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl C {
[INFO] [stdout]     | ------ associated function in this implementation
[INFO] [stdout] 141 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rust` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub(crate) struct Rust {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl Rust {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 161 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Docker` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub(crate) struct Docker {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Docker {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 181 |     pub(crate) fn new(path: String, name: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Repository` is never constructed
[INFO] [stdout]   --> src/build_utils/project.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Repository {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `clone`, and `update` are never used
[INFO] [stdout]   --> src/build_utils/project.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Repository {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 18 |     /// 创建一个新的仓库实例
[INFO] [stdout] 19 |     fn new(url: String, branch: String) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn clone(&self, path: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn update(&self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Project` is never constructed
[INFO] [stdout]   --> src/build_utils/project.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Project {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `init_info`, `get_source_code`, `init_builder`, `build`, and `deploy_to_docker` are never used
[INFO] [stdout]    --> src/build_utils/project.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl Project {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  57 |     /// 创建一个新的项目实例
[INFO] [stdout]  58 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn init_info(&self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get_source_code(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn init_builder(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn build(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn deploy_to_docker(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Configuration` is never constructed
[INFO] [stdout]  --> src/config/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Configuration {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct AppConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct MqttConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedisConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct RedisConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_config` is never used
[INFO] [stdout]   --> src/config/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn load_config() -> Configuration {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `docker_run_command` is never used
[INFO] [stdout]  --> src/docker_utils/mod.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn docker_run_command(args: &[&str]) -> Result<String, Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_stop` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn container_stop(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_kill` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn container_kill(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_remove` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn container_remove(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_inspect` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn container_inspect(name: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_list_formatted` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn image_list_formatted() -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_remove` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn image_remove(images: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn build(name: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn save(name: &str, path: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn load(path: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_prune` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn image_prune() -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_run` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn default_run(name: &str, ports: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_rerun` is never used
[INFO] [stdout]    --> src/docker_utils/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn container_rerun(name: &str, ports: &[&str]) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mount` is never constructed
[INFO] [stdout]  --> src/docker_utils/container_info.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Mount {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PortBinding` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PortBinding {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestartPolicy` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct RestartPolicy {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostConfig` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct HostConfig {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Config {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerInfo` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ContainerInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/docker_utils/container_info.rs:48:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl ContainerInfo {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout]  48 |     fn parse_container_name(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn parse_privileged(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     fn parse_publish_all_ports(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     fn parse_auto_remove(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn parse_user(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn parse_envs(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     fn parse_mounts(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn parse_port_bindings(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn parse_restart_policy(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn parse_image(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DockerCommand` is never constructed
[INFO] [stdout]    --> src/docker_utils/container_info.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct DockerCommand {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from` and `to_command` are never used
[INFO] [stdout]    --> src/docker_utils/container_info.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl DockerCommand {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 127 |     pub fn from(info: ContainerInfo) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn to_command(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace` is never used
[INFO] [stdout]   --> src/file_utils/mod.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn replace(source: &Path, target: &Path) -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_directory` is never used
[INFO] [stdout]   --> src/file_utils/mod.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn create_directory(path: &str) -> Result<FileData, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `abs_path`, `filename`, and `metadata` are never read
[INFO] [stdout]   --> src/file_utils/file_data.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct FileData {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  7 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]  8 |     pub path_buf: PathBuf,
[INFO] [stdout]  9 |     pub abs_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub filename: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     pub metadata: fs::Metadata,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_default` is never used
[INFO] [stdout]  --> src/git_utils/mod.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn clone_default(url: &str, branch: &str, dir: &str) -> Result<String, io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_single_branch` is never used
[INFO] [stdout]  --> src/git_utils/mod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn clone_single_branch(url: &str, branch: &str, dir: &str) -> Result<String, io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pull` is never used
[INFO] [stdout]   --> src/git_utils/mod.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn pull() -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> src/git_utils/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn fetch() -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Source` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Source: String,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `source`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Destination` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Destination: String,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to snake case: `destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mode` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Mode: String,
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case: `mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostPort` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     HostPort: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `host_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PortBindings` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     PortBindings: HashMap<String, Vec<PortBinding>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `port_bindings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `RestartPolicy` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     RestartPolicy: RestartPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `restart_policy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AutoRemove` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     AutoRemove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `auto_remove`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Privileged` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Privileged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `privileged`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PublishAllPorts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     PublishAllPorts: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `publish_all_ports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `User` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     User: Option<String>,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Env` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Env: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cmd` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Image` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Image: String,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case (notice the capitalization): `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub Name: String,
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Config` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Config: Config,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostConfig` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     HostConfig: HostConfig,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `host_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mounts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Mounts: Vec<Mount>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mounts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]   --> src/command_utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let stderr = stderr_handle
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let api_url = "http://42.192.69.243:20379";
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `post_by_json` and `post_by_form` are never used
[INFO] [stdout]    --> src/http_utils/mod.rs:93:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl HttpUtils {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub async fn post_by_json<T: Serialize>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn post_by_form(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Builder` is never used
[INFO] [stdout]  --> src/build_utils/builder.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) trait Builder: Debug {
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Maven` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct Maven {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Maven {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 16 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gradle` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct Gradle {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Gradle {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 35 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Python` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Python {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Python {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 54 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/build_utils/builder.rs:77:19
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) struct Node {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/build_utils/builder.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl Node {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 82 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Go` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:115:19
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) struct Go {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Go {
[INFO] [stdout]     | ------- associated function in this implementation
[INFO] [stdout] 120 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `C` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub(crate) struct C {
[INFO] [stdout]     |                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:141:19
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl C {
[INFO] [stdout]     | ------ associated function in this implementation
[INFO] [stdout] 141 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rust` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub(crate) struct Rust {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl Rust {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 161 |     pub(crate) fn new(path: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Docker` is never constructed
[INFO] [stdout]    --> src/build_utils/builder.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub(crate) struct Docker {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/build_utils/builder.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Docker {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 181 |     pub(crate) fn new(path: String, name: String) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Repository` is never constructed
[INFO] [stdout]   --> src/build_utils/project.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Repository {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `clone`, and `update` are never used
[INFO] [stdout]   --> src/build_utils/project.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Repository {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 18 |     /// 创建一个新的仓库实例
[INFO] [stdout] 19 |     fn new(url: String, branch: String) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn clone(&self, path: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn update(&self) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Project` is never constructed
[INFO] [stdout]   --> src/build_utils/project.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Project {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `init_info`, `get_source_code`, `init_builder`, `build`, and `deploy_to_docker` are never used
[INFO] [stdout]    --> src/build_utils/project.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl Project {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  57 |     /// 创建一个新的项目实例
[INFO] [stdout]  58 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn init_info(&self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get_source_code(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn init_builder(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn build(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn deploy_to_docker(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Configuration` is never constructed
[INFO] [stdout]  --> src/config/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Configuration {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct AppConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MqttConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct MqttConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedisConfiguration` is never constructed
[INFO] [stdout]   --> src/config/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct RedisConfiguration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_config` is never used
[INFO] [stdout]   --> src/config/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn load_config() -> Configuration {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `docker_run_command` is never used
[INFO] [stdout]  --> src/docker_utils/mod.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn docker_run_command(args: &[&str]) -> Result<String, Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_stop` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn container_stop(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_kill` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn container_kill(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_remove` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn container_remove(containers: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_inspect` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn container_inspect(name: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_list_formatted` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn image_list_formatted() -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_remove` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn image_remove(images: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn build(name: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn save(name: &str, path: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn load(path: &str) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_prune` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn image_prune() -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_run` is never used
[INFO] [stdout]   --> src/docker_utils/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn default_run(name: &str, ports: &[&str]) -> Result<String, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `container_rerun` is never used
[INFO] [stdout]    --> src/docker_utils/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn container_rerun(name: &str, ports: &[&str]) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mount` is never constructed
[INFO] [stdout]  --> src/docker_utils/container_info.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Mount {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PortBinding` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PortBinding {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestartPolicy` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct RestartPolicy {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostConfig` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct HostConfig {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Config {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerInfo` is never constructed
[INFO] [stdout]   --> src/docker_utils/container_info.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ContainerInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/docker_utils/container_info.rs:48:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl ContainerInfo {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout]  48 |     fn parse_container_name(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn parse_privileged(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     fn parse_publish_all_ports(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     fn parse_auto_remove(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn parse_user(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn parse_envs(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     fn parse_mounts(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn parse_port_bindings(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn parse_restart_policy(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn parse_image(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DockerCommand` is never constructed
[INFO] [stdout]    --> src/docker_utils/container_info.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct DockerCommand {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from` and `to_command` are never used
[INFO] [stdout]    --> src/docker_utils/container_info.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl DockerCommand {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 127 |     pub fn from(info: ContainerInfo) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn to_command(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace` is never used
[INFO] [stdout]   --> src/file_utils/mod.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn replace(source: &Path, target: &Path) -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_directory` is never used
[INFO] [stdout]   --> src/file_utils/mod.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn create_directory(path: &str) -> Result<FileData, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `abs_path`, `filename`, and `metadata` are never read
[INFO] [stdout]   --> src/file_utils/file_data.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct FileData {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  7 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]  8 |     pub path_buf: PathBuf,
[INFO] [stdout]  9 |     pub abs_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub filename: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     pub metadata: fs::Metadata,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_default` is never used
[INFO] [stdout]  --> src/git_utils/mod.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn clone_default(url: &str, branch: &str, dir: &str) -> Result<String, io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_single_branch` is never used
[INFO] [stdout]  --> src/git_utils/mod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn clone_single_branch(url: &str, branch: &str, dir: &str) -> Result<String, io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pull` is never used
[INFO] [stdout]   --> src/git_utils/mod.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn pull() -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> src/git_utils/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn fetch() -> Result<String, io::Error> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Source` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Source: String,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `source`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Destination` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Destination: String,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to snake case: `destination`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mode` should have a snake case name
[INFO] [stdout]  --> src/docker_utils/container_info.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Mode: String,
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case: `mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostPort` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     HostPort: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `host_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Name: String,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PortBindings` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     PortBindings: HashMap<String, Vec<PortBinding>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `port_bindings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `RestartPolicy` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     RestartPolicy: RestartPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `restart_policy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AutoRemove` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     AutoRemove: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `auto_remove`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Privileged` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Privileged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `privileged`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PublishAllPorts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     PublishAllPorts: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `publish_all_ports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `User` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     User: Option<String>,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Env` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Env: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Cmd` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Cmd: Option<Vec<String>>,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case (notice the capitalization): `cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Image` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Image: String,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case (notice the capitalization): `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Name` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub Name: String,
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Config` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Config: Config,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HostConfig` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     HostConfig: HostConfig,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `host_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Mounts` should have a snake case name
[INFO] [stdout]   --> src/docker_utils/container_info.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Mounts: Vec<Mount>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mounts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 06s
[INFO] running `Command { std: "docker" "inspect" "b742ed482d904c07afac654a0e6dd84a526c3a7ed7c4afa0f4fd77ad6146bc22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b742ed482d904c07afac654a0e6dd84a526c3a7ed7c4afa0f4fd77ad6146bc22", kill_on_drop: false }`
[INFO] [stdout] b742ed482d904c07afac654a0e6dd84a526c3a7ed7c4afa0f4fd77ad6146bc22
