[INFO] cloning repository https://github.com/natebuckareff/vmm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/natebuckareff/vmm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnatebuckareff%2Fvmm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnatebuckareff%2Fvmm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6f92666c8da446bbdd36c529a147e900d1d1b0df
[INFO] checking natebuckareff/vmm against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnatebuckareff%2Fvmm" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/natebuckareff/vmm
[INFO] finished tweaking git repo https://github.com/natebuckareff/vmm
[INFO] tweaked toml for git repo https://github.com/natebuckareff/vmm written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/natebuckareff/vmm 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/natebuckareff/vmm 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded qapi-codegen v0.11.3
[INFO] [stderr]   Downloaded qapi-spec v0.3.2
[INFO] [stderr]   Downloaded base-62 v0.1.1
[INFO] [stderr]   Downloaded qapi-parser v0.11.0
[INFO] [stderr]   Downloaded directories v6.0.0
[INFO] [stderr]   Downloaded qapi v0.15.0
[INFO] [stderr]   Downloaded hyper-rustls v0.27.6
[INFO] [stderr]   Downloaded byte-unit v5.1.6
[INFO] [stderr]   Downloaded quinn v0.11.8
[INFO] [stderr]   Downloaded ctrlc v3.4.7
[INFO] [stderr]   Downloaded hyper-util v0.1.13
[INFO] [stderr]   Downloaded reqwest v0.12.19
[INFO] [stderr]   Downloaded rust_decimal v1.37.1
[INFO] [stderr]   Downloaded qapi-qmp v0.15.0
[INFO] [stderr]   Downloaded quinn-proto v0.11.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 55ae8d0ff21f1381f4e6f5c56e9c2dee9a25cea50d1f154eb8793c67f8f72f6c
[INFO] running `Command { std: "docker" "start" "-a" "55ae8d0ff21f1381f4e6f5c56e9c2dee9a25cea50d1f154eb8793c67f8f72f6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "55ae8d0ff21f1381f4e6f5c56e9c2dee9a25cea50d1f154eb8793c67f8f72f6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55ae8d0ff21f1381f4e6f5c56e9c2dee9a25cea50d1f154eb8793c67f8f72f6c", kill_on_drop: false }`
[INFO] [stdout] 55ae8d0ff21f1381f4e6f5c56e9c2dee9a25cea50d1f154eb8793c67f8f72f6c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 09cf61a3fb591c930823b1d5c7e6315120295a27b44ea0f951f763a2375e9ddd
[INFO] running `Command { std: "docker" "start" "-a" "09cf61a3fb591c930823b1d5c7e6315120295a27b44ea0f951f763a2375e9ddd", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling cc v1.2.25
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling rustls v0.23.27
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]    Compiling rust_decimal v1.37.1
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking webpki-roots v1.0.0
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]     Checking clap_builder v4.5.39
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking backtrace v0.3.75
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking utf8-width v0.1.7
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking base-62 v0.1.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking ctrlc v3.4.7
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking rustls-webpki v0.103.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking clap v4.5.39
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking byte-unit v5.1.6
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling qapi-parser v0.11.0
[INFO] [stderr]     Checking qapi-spec v0.3.2
[INFO] [stderr]    Compiling qapi-codegen v0.11.3
[INFO] [stderr]    Compiling qapi-qmp v0.15.0
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.13
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking hyper-rustls v0.27.6
[INFO] [stderr]     Checking reqwest v0.12.19
[INFO] [stderr]     Checking qapi v0.15.0
[INFO] [stderr]     Checking vmm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicUsize`, and `Ordering`
[INFO] [stdout]  --> src/image_cache.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |         Arc,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 5 |         atomic::{AtomicUsize, Ordering},
[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: `bail`
[INFO] [stdout]  --> src/vmm_dirs.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, anyhow, bail};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicUsize`, and `Ordering`
[INFO] [stdout]  --> src/image_cache.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |         Arc,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 5 |         atomic::{AtomicUsize, Ordering},
[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: `bail`
[INFO] [stdout]  --> src/vmm_dirs.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, anyhow, bail};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/machine.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/cli.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     name,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `network`
[INFO] [stdout]   --> src/cli.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                     network,
[INFO] [stdout]    |                     ^^^^^^^ help: try ignoring the field: `network: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpus`
[INFO] [stdout]   --> src/cli.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     cpus,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `cpus: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]   --> src/cli.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     memory,
[INFO] [stdout]    |                     ^^^^^^ help: try ignoring the field: `memory: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iso`
[INFO] [stdout]   --> src/cli.rs:89:21
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     iso,
[INFO] [stdout]    |                     ^^^ help: try ignoring the field: `iso: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot`
[INFO] [stdout]   --> src/cli.rs:90:21
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     boot,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `boot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `virtiofs`
[INFO] [stdout]   --> src/cli.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     virtiofs,
[INFO] [stdout]    |                     ^^^^^^^^ help: try ignoring the field: `virtiofs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/cli.rs:102:42
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 NetworkCommand::Create { name, ip } => {
[INFO] [stdout]     |                                          ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip`
[INFO] [stdout]    --> src/cli.rs:102:48
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 NetworkCommand::Create { name, ip } => {
[INFO] [stdout]     |                                                ^^ help: try ignoring the field: `ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/server.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub async fn stop_instance(&mut self, ctx: &Ctx, id: Id) -> Result<()> {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/machine.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/cli.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     name,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `network`
[INFO] [stdout]   --> src/cli.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                     network,
[INFO] [stdout]    |                     ^^^^^^^ help: try ignoring the field: `network: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpus`
[INFO] [stdout]   --> src/cli.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     cpus,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `cpus: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel_token`, `logger`, `image_manager`, and `progress_router` are never read
[INFO] [stdout]   --> src/ctx.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Ctx {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 10 |     cancel_token: CancellationToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     dirs: VmmDirs,
[INFO] [stdout] 12 |     logger: Logger,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 13 |     image_manager: Option<ImageCacheClient>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     progress_router: Option<ProgressRouterClient>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ctx` has a derived impl for the trait `Clone`, 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: unused variable: `memory`
[INFO] [stdout]   --> src/cli.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     memory,
[INFO] [stdout]    |                     ^^^^^^ help: try ignoring the field: `memory: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iso`
[INFO] [stdout]   --> src/cli.rs:89:21
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     iso,
[INFO] [stdout]    |                     ^^^ help: try ignoring the field: `iso: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot`
[INFO] [stdout]   --> src/cli.rs:90:21
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     boot,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `boot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_image_manager`, `with_progress_router`, `cancel_token`, `logger`, `image_manager`, and `progress_router` are never used
[INFO] [stdout]   --> src/ctx.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Ctx {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_image_manager(self, image_manager: ImageCacheClient) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn with_progress_router(self, progress_router: ProgressRouterClient) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn cancel_token(&self) -> &CancellationToken {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn logger(&self) -> &Logger {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn image_manager(&self) -> &ImageCacheClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn progress_router(&self) -> &ProgressRouterClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `virtiofs`
[INFO] [stdout]   --> src/cli.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     virtiofs,
[INFO] [stdout]    |                     ^^^^^^^^ help: try ignoring the field: `virtiofs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/cli.rs:102:42
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 NetworkCommand::Create { name, ip } => {
[INFO] [stdout]     |                                          ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_image_cache` is never used
[INFO] [stdout]   --> src/image_cache.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn create_image_cache(ctx: Ctx, task_group: &mut TaskGroup<Result<()>>) -> ImageCacheClient {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ip`
[INFO] [stdout]    --> src/cli.rs:102:48
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 NetworkCommand::Create { name, ip } => {
[INFO] [stdout]     |                                                ^^ help: try ignoring the field: `ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetImageHash` and `GetImageHashResult` are never constructed
[INFO] [stdout]   --> src/image_cache.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum ImageCacheMessage {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 48 |     GetImageHash {
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     GetImageHashResult(Url, GetImageHashResult),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageCacheMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ImageCached`, `DownloadNoContentLength`, `DownloadFailed`, `DownloadFailedToReadChunk`, `DownloadCancelled`, and `UnknownError` are never constructed
[INFO] [stdout]   --> src/image_cache.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum GetImageHashResult {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 58 |     ImageCached(ImageHash),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     DownloadNoContentLength,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     DownloadFailed(reqwest::StatusCode),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     DownloadFailedToReadChunk,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     DownloadCancelled,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     UnknownError,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GetImageHashResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/image_cache.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum Either<T, U> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sender` is never read
[INFO] [stdout]   --> src/image_cache.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ImageCacheClient {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 74 |     sender: mpsc::Sender<ImageCacheMessage>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageCacheClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_image_hash` are never used
[INFO] [stdout]   --> src/image_cache.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl ImageCacheClient {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 78 |     pub fn new(sender: mpsc::Sender<ImageCacheMessage>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub async fn get_image_hash(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Download` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | struct Download {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Subscriber` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | struct Subscriber {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Timer` is never used
[INFO] [stdout]    --> src/image_cache.rs:122:6
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum Timer {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageCache` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct ImageCache {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run`, `handle_message`, `handle_get_image_hash`, and `handle_timer` are never used
[INFO] [stdout]    --> src/image_cache.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl ImageCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 137 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub async fn run(mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     async fn handle_message(&mut self, message: ImageCacheMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     async fn handle_get_image_hash(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     async fn handle_timer(&mut self, timer: Timer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_image_hash` is never used
[INFO] [stdout]    --> src/image_cache.rs:311:10
[INFO] [stdout]     |
[INFO] [stdout] 311 | async fn get_image_hash(ctx: &Ctx, download_id: u64, url: Url) -> Result<GetImageHashResult> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstanceState` is never constructed
[INFO] [stdout]   --> src/instance.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct InstanceState {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Instance {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/instance.rs:38:18
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Instance {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  38 |     pub async fn new(ctx: &Ctx, id: Id, machine: Machine, network: Network) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub async fn read(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn init_share_dirs(machine: &Machine, id: Id, boot_seq: u64) -> Result<Vec<ShareDir>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn machine(&self) -> &Machine {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn network(&self) -> &Network {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_mac_address(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     async fn get_qemu_args(&mut self, ctx: &Ctx) -> Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub async fn start(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub async fn stop(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     async fn start_qemu(&mut self, ctx: &Ctx, args: Vec<String>) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     async fn stop_qemu(&mut self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogLine` is never constructed
[INFO] [stdout]   --> src/logger.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct LogLine {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `machine` and `instance` are never used
[INFO] [stdout]   --> src/logger.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl LogLine {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 20 |     pub fn machine(id: Id, stream: LogStream, source: LogSource, line: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn instance(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogId` is never used
[INFO] [stdout]   --> src/logger.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum LogId {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogStream` is never used
[INFO] [stdout]   --> src/logger.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum LogStream {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogSource` is never used
[INFO] [stdout]   --> src/logger.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum LogSource {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dirs` is never read
[INFO] [stdout]   --> src/logger.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct Logger {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 84 |     dirs: VmmDirs,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Logger` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `log` is never used
[INFO] [stdout]   --> src/logger.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl Logger {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn log(&self, log: LogLine) -> Result<()> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]   --> src/machine.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl MachineConfig {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub async fn save(&self, ctx: &Ctx, id: Id, create: bool) -> Result<()> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]   --> src/machine.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl MachineUserConfig {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 88 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]    --> src/machine.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl MachineNetworkConfig {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 118 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]    --> src/machine.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl MachineStaticNetworkConfig {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] 140 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Machine` is never constructed
[INFO] [stdout]    --> src/machine.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct Machine {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/machine.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 187 |     pub async fn new(ctx: &Ctx, id: Id, config: MachineConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub async fn open(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn config(&self) -> &MachineConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub async fn get_root_image(&mut self, ctx: &Ctx) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     async fn write_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     async fn write_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     async fn write_network_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     async fn write_user_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub async fn get_cloud_init_iso(&self, ctx: &Ctx) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]   --> src/network.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl NetworkConfig {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn save(&self, ctx: &Ctx, id: Id, create: bool) -> Result<()> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Network` is never constructed
[INFO] [stdout]   --> src/network.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Network {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network.rs:66:18
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Network {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  66 |     pub async fn new(ctx: &Ctx, id: Id, config: NetworkConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub async fn open(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn config(&self) -> &NetworkConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub async fn set_bridge_up_or_create(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn set_tap_up_or_create(&self, instance: &Instance) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     async fn delete_tap_device(&self, instance: &Instance) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     async fn delete_bridge_device(&self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_bridge_name(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_tap_name(&self, instance: &Instance) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd` is never used
[INFO] [stdout]    --> src/network.rs:166:10
[INFO] [stdout]     |
[INFO] [stdout] 166 | async fn cmd(cmd: &str, args: &[&str]) -> Result<ExitStatus> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_success` is never used
[INFO] [stdout]    --> src/network.rs:172:10
[INFO] [stdout]     |
[INFO] [stdout] 172 | async fn cmd_success(cmd: &str, args: &[&str]) -> Result<ExitStatus> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_router` is never used
[INFO] [stdout]  --> src/progress_router.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn create_progress_router(task_group: &mut TaskGroup<Result<()>>) -> ProgressRouterClient {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Start`, `Update`, and `Finish` are never constructed
[INFO] [stdout]   --> src/progress_router.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ProgressMessage {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] 22 |     Start(String, Option<u64>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     Update(String, u64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     Finish(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sender` and `sender_broadcast` are never read
[INFO] [stdout]   --> src/progress_router.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ProgressRouterClient {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 29 |     sender: mpsc::Sender<ProgressMessage>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     sender_broadcast: broadcast::Sender<ProgressMessage>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressRouterClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `send`, and `subscribe` are never used
[INFO] [stdout]   --> src/progress_router.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl ProgressRouterClient {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn send(&self, message: ProgressMessage) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn subscribe(&self) -> broadcast::Receiver<ProgressMessage> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressRouter` is never constructed
[INFO] [stdout]   --> src/progress_router.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ProgressRouter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/progress_router.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl ProgressRouter {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 59 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub async fn run(mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntityKind` is never used
[INFO] [stdout]   --> src/server.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum EntityKind {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Server` is never constructed
[INFO] [stdout]   --> src/server.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Server {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/server.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Server {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  27 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     async fn read_machines(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     async fn read_networks(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     async fn read_instances(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub async fn read_all(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub async fn create_machine(&mut self, ctx: &Ctx, config: MachineConfig) -> Result<Id> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn create_network(&mut self, ctx: &Ctx, config: NetworkConfig) -> Result<Id> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn create_instance(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub async fn start_instance(&mut self, ctx: &Ctx, id: &Id) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub async fn stop_instance(&mut self, ctx: &Ctx, id: Id) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShareDir` is never constructed
[INFO] [stdout]   --> src/share_dir.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ShareDir {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_socket_path`, `get_qemu_args`, `start_virtiofsd`, `start`, and `stop` are never used
[INFO] [stdout]    --> src/share_dir.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl ShareDir {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  30 |     pub fn new(instance_id: Id, boot_seq: u64, machine: &Machine, path: PathBuf) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn get_socket_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn get_qemu_args(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     async fn start_virtiofsd(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn start(&mut self, ctx: &Ctx) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub async fn stop(&mut self) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHUTDOWN_TIMEOUT` is never used
[INFO] [stdout]   --> src/task_actor.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const SHUTDOWN_TIMEOUT: Duration = Duration::from_secs(5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorTimer` is never used
[INFO] [stdout]   --> src/task_actor.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum TaskActorTimer<Timer> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorEvent` is never used
[INFO] [stdout]   --> src/task_actor.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TaskActorEvent<Message, Timer> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorStopReason` is never used
[INFO] [stdout]   --> src/task_actor.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum TaskActorStopReason {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskActor` is never constructed
[INFO] [stdout]   --> src/task_actor.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TaskActor<Message, Timer, Return> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/task_actor.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl<Message, Timer, Return> TaskActor<Message, Timer, Return> {
[INFO] [stdout]     | -------------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  40 |     pub fn new(cancel_token: CancellationToken, receiver: mpsc::Receiver<Message>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub async fn update(&mut self) -> Result<TaskActorEvent<Message, Timer>> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn shutdown(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn receiver(&self) -> &mpsc::Receiver<Message> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn insert_timer(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn remove_timer(&mut self, key: tokio_util::time::delay_queue::Key) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn tasks(&mut self) -> &mut TaskGroup<Return> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskId` is never constructed
[INFO] [stdout]  --> src/task_group.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TaskId(u64);
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskGroup` is never constructed
[INFO] [stdout]   --> src/task_group.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TaskGroup<T> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskResult` is never used
[INFO] [stdout]   --> src/task_group.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum TaskResult<T> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `spawn`, `wait`, `cancel`, `abort_all`, and `abort_task` are never used
[INFO] [stdout]   --> src/task_group.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> TaskGroup<T> {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(cancel_token: CancellationToken) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn spawn<F>(&mut self, future: F) -> TaskId
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub async fn wait(&mut self) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub async fn cancel(&mut self) {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn abort_all(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub async fn abort_task(&mut self, task_id: TaskId) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_gap` is never used
[INFO] [stdout]   --> src/text_table.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TextTableBuilder {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn set_gap(mut self, gap: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base_dirs`, `cache_dir`, and `state_dir` are never read
[INFO] [stdout]   --> src/vmm_dirs.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct VmmDirs {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     base_dirs: BaseDirs,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     config_dir: PathBuf,
[INFO] [stdout] 12 |     cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     state_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VmmDirs` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vmm_dirs.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl VmmDirs {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn get_instance_state_ids(&self) -> Result<Vec<Id>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn get_instance_state_dir(&self, instance_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn get_instance_state_file_path(&self, id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_machine_cache_dir(&self, machine_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_machine_log_dir(&self, machine_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_image_download_dir(&self) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_image_download_path(&self, download_id: u64) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_image_cache_path(&self, hash: &str) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn get_instance_log_dir(&self, instance_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/task_group.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 handle.await;
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 let _ = handle.await;
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/server.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub async fn stop_instance(&mut self, ctx: &Ctx, id: Id) -> Result<()> {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cancel_token`, `logger`, `image_manager`, and `progress_router` are never read
[INFO] [stdout]   --> src/ctx.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Ctx {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 10 |     cancel_token: CancellationToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     dirs: VmmDirs,
[INFO] [stdout] 12 |     logger: Logger,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 13 |     image_manager: Option<ImageCacheClient>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     progress_router: Option<ProgressRouterClient>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ctx` has a derived impl for the trait `Clone`, 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: methods `with_image_manager`, `with_progress_router`, `cancel_token`, `logger`, `image_manager`, and `progress_router` are never used
[INFO] [stdout]   --> src/ctx.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Ctx {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_image_manager(self, image_manager: ImageCacheClient) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn with_progress_router(self, progress_router: ProgressRouterClient) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn cancel_token(&self) -> &CancellationToken {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn logger(&self) -> &Logger {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn image_manager(&self) -> &ImageCacheClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn progress_router(&self) -> &ProgressRouterClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_image_cache` is never used
[INFO] [stdout]   --> src/image_cache.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn create_image_cache(ctx: Ctx, task_group: &mut TaskGroup<Result<()>>) -> ImageCacheClient {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetImageHash` and `GetImageHashResult` are never constructed
[INFO] [stdout]   --> src/image_cache.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum ImageCacheMessage {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 48 |     GetImageHash {
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     GetImageHashResult(Url, GetImageHashResult),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageCacheMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ImageCached`, `DownloadNoContentLength`, `DownloadFailed`, `DownloadFailedToReadChunk`, `DownloadCancelled`, and `UnknownError` are never constructed
[INFO] [stdout]   --> src/image_cache.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum GetImageHashResult {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 58 |     ImageCached(ImageHash),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     DownloadNoContentLength,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     DownloadFailed(reqwest::StatusCode),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     DownloadFailedToReadChunk,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     DownloadCancelled,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     UnknownError,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GetImageHashResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/image_cache.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum Either<T, U> {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sender` is never read
[INFO] [stdout]   --> src/image_cache.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ImageCacheClient {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 74 |     sender: mpsc::Sender<ImageCacheMessage>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageCacheClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_image_hash` are never used
[INFO] [stdout]   --> src/image_cache.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl ImageCacheClient {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 78 |     pub fn new(sender: mpsc::Sender<ImageCacheMessage>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub async fn get_image_hash(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Download` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | struct Download {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Subscriber` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | struct Subscriber {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Timer` is never used
[INFO] [stdout]    --> src/image_cache.rs:122:6
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum Timer {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageCache` is never constructed
[INFO] [stdout]    --> src/image_cache.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct ImageCache {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run`, `handle_message`, `handle_get_image_hash`, and `handle_timer` are never used
[INFO] [stdout]    --> src/image_cache.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl ImageCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 137 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub async fn run(mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     async fn handle_message(&mut self, message: ImageCacheMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     async fn handle_get_image_hash(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     async fn handle_timer(&mut self, timer: Timer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_image_hash` is never used
[INFO] [stdout]    --> src/image_cache.rs:311:10
[INFO] [stdout]     |
[INFO] [stdout] 311 | async fn get_image_hash(ctx: &Ctx, download_id: u64, url: Url) -> Result<GetImageHashResult> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstanceState` is never constructed
[INFO] [stdout]   --> src/instance.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct InstanceState {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Instance {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/instance.rs:38:18
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Instance {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  38 |     pub async fn new(ctx: &Ctx, id: Id, machine: Machine, network: Network) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub async fn read(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn init_share_dirs(machine: &Machine, id: Id, boot_seq: u64) -> Result<Vec<ShareDir>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn machine(&self) -> &Machine {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn network(&self) -> &Network {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_mac_address(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     async fn get_qemu_args(&mut self, ctx: &Ctx) -> Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub async fn start(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub async fn stop(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     async fn start_qemu(&mut self, ctx: &Ctx, args: Vec<String>) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     async fn stop_qemu(&mut self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogLine` is never constructed
[INFO] [stdout]   --> src/logger.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct LogLine {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `machine` and `instance` are never used
[INFO] [stdout]   --> src/logger.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl LogLine {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 20 |     pub fn machine(id: Id, stream: LogStream, source: LogSource, line: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn instance(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogId` is never used
[INFO] [stdout]   --> src/logger.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum LogId {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogStream` is never used
[INFO] [stdout]   --> src/logger.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum LogStream {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogSource` is never used
[INFO] [stdout]   --> src/logger.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum LogSource {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dirs` is never read
[INFO] [stdout]   --> src/logger.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct Logger {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 84 |     dirs: VmmDirs,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Logger` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `log` is never used
[INFO] [stdout]   --> src/logger.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl Logger {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn log(&self, log: LogLine) -> Result<()> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]   --> src/machine.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl MachineConfig {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub async fn save(&self, ctx: &Ctx, id: Id, create: bool) -> Result<()> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]   --> src/machine.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl MachineUserConfig {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 88 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]    --> src/machine.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl MachineNetworkConfig {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 118 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_cloud_init_config` is never used
[INFO] [stdout]    --> src/machine.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl MachineStaticNetworkConfig {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] 140 |     fn to_cloud_init_config(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Machine` is never constructed
[INFO] [stdout]    --> src/machine.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct Machine {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/machine.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 187 |     pub async fn new(ctx: &Ctx, id: Id, config: MachineConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub async fn open(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn config(&self) -> &MachineConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub async fn get_root_image(&mut self, ctx: &Ctx) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     async fn write_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     async fn write_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     async fn write_network_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     async fn write_user_cloud_init_config(&self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub async fn get_cloud_init_iso(&self, ctx: &Ctx) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]   --> src/network.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl NetworkConfig {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn save(&self, ctx: &Ctx, id: Id, create: bool) -> Result<()> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Network` is never constructed
[INFO] [stdout]   --> src/network.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Network {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network.rs:66:18
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Network {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  66 |     pub async fn new(ctx: &Ctx, id: Id, config: NetworkConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub async fn open(ctx: &Ctx, id: Id) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn id(&self) -> &Id {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn config(&self) -> &NetworkConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub async fn set_bridge_up_or_create(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn set_tap_up_or_create(&self, instance: &Instance) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     async fn delete_tap_device(&self, instance: &Instance) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     async fn delete_bridge_device(&self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_bridge_name(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_tap_name(&self, instance: &Instance) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd` is never used
[INFO] [stdout]    --> src/network.rs:166:10
[INFO] [stdout]     |
[INFO] [stdout] 166 | async fn cmd(cmd: &str, args: &[&str]) -> Result<ExitStatus> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_success` is never used
[INFO] [stdout]    --> src/network.rs:172:10
[INFO] [stdout]     |
[INFO] [stdout] 172 | async fn cmd_success(cmd: &str, args: &[&str]) -> Result<ExitStatus> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_router` is never used
[INFO] [stdout]  --> src/progress_router.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn create_progress_router(task_group: &mut TaskGroup<Result<()>>) -> ProgressRouterClient {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Start`, `Update`, and `Finish` are never constructed
[INFO] [stdout]   --> src/progress_router.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ProgressMessage {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] 22 |     Start(String, Option<u64>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     Update(String, u64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     Finish(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sender` and `sender_broadcast` are never read
[INFO] [stdout]   --> src/progress_router.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ProgressRouterClient {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 29 |     sender: mpsc::Sender<ProgressMessage>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     sender_broadcast: broadcast::Sender<ProgressMessage>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressRouterClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `send`, and `subscribe` are never used
[INFO] [stdout]   --> src/progress_router.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl ProgressRouterClient {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn send(&self, message: ProgressMessage) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn subscribe(&self) -> broadcast::Receiver<ProgressMessage> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressRouter` is never constructed
[INFO] [stdout]   --> src/progress_router.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ProgressRouter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/progress_router.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl ProgressRouter {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 59 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub async fn run(mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntityKind` is never used
[INFO] [stdout]   --> src/server.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum EntityKind {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Server` is never constructed
[INFO] [stdout]   --> src/server.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Server {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/server.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Server {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  27 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     async fn read_machines(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     async fn read_networks(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     async fn read_instances(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub async fn read_all(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub async fn create_machine(&mut self, ctx: &Ctx, config: MachineConfig) -> Result<Id> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn create_network(&mut self, ctx: &Ctx, config: NetworkConfig) -> Result<Id> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn create_instance(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub async fn start_instance(&mut self, ctx: &Ctx, id: &Id) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub async fn stop_instance(&mut self, ctx: &Ctx, id: Id) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShareDir` is never constructed
[INFO] [stdout]   --> src/share_dir.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ShareDir {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_socket_path`, `get_qemu_args`, `start_virtiofsd`, `start`, and `stop` are never used
[INFO] [stdout]    --> src/share_dir.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl ShareDir {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  30 |     pub fn new(instance_id: Id, boot_seq: u64, machine: &Machine, path: PathBuf) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn get_socket_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn get_qemu_args(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     async fn start_virtiofsd(&mut self, ctx: &Ctx) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn start(&mut self, ctx: &Ctx) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub async fn stop(&mut self) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHUTDOWN_TIMEOUT` is never used
[INFO] [stdout]   --> src/task_actor.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const SHUTDOWN_TIMEOUT: Duration = Duration::from_secs(5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorTimer` is never used
[INFO] [stdout]   --> src/task_actor.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum TaskActorTimer<Timer> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorEvent` is never used
[INFO] [stdout]   --> src/task_actor.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TaskActorEvent<Message, Timer> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskActorStopReason` is never used
[INFO] [stdout]   --> src/task_actor.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum TaskActorStopReason {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskActor` is never constructed
[INFO] [stdout]   --> src/task_actor.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TaskActor<Message, Timer, Return> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/task_actor.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl<Message, Timer, Return> TaskActor<Message, Timer, Return> {
[INFO] [stdout]     | -------------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  40 |     pub fn new(cancel_token: CancellationToken, receiver: mpsc::Receiver<Message>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub async fn update(&mut self) -> Result<TaskActorEvent<Message, Timer>> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn shutdown(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn receiver(&self) -> &mpsc::Receiver<Message> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn insert_timer(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn remove_timer(&mut self, key: tokio_util::time::delay_queue::Key) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn tasks(&mut self) -> &mut TaskGroup<Return> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskId` is never constructed
[INFO] [stdout]  --> src/task_group.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TaskId(u64);
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskGroup` is never constructed
[INFO] [stdout]   --> src/task_group.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TaskGroup<T> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskResult` is never used
[INFO] [stdout]   --> src/task_group.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum TaskResult<T> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `spawn`, `wait`, `cancel`, `abort_all`, and `abort_task` are never used
[INFO] [stdout]   --> src/task_group.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> TaskGroup<T> {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(cancel_token: CancellationToken) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn spawn<F>(&mut self, future: F) -> TaskId
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub async fn wait(&mut self) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub async fn cancel(&mut self) {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn abort_all(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub async fn abort_task(&mut self, task_id: TaskId) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_gap` is never used
[INFO] [stdout]   --> src/text_table.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TextTableBuilder {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn set_gap(mut self, gap: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base_dirs`, `cache_dir`, and `state_dir` are never read
[INFO] [stdout]   --> src/vmm_dirs.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct VmmDirs {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     base_dirs: BaseDirs,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     config_dir: PathBuf,
[INFO] [stdout] 12 |     cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     state_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VmmDirs` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vmm_dirs.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl VmmDirs {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn get_instance_state_ids(&self) -> Result<Vec<Id>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn get_instance_state_dir(&self, instance_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn get_instance_state_file_path(&self, id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_machine_cache_dir(&self, machine_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_machine_log_dir(&self, machine_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_image_download_dir(&self) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_image_download_path(&self, download_id: u64) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_image_cache_path(&self, hash: &str) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn get_instance_log_dir(&self, instance_id: Id) -> Result<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/task_group.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 handle.await;
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 let _ = handle.await;
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 00s
[INFO] running `Command { std: "docker" "inspect" "09cf61a3fb591c930823b1d5c7e6315120295a27b44ea0f951f763a2375e9ddd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09cf61a3fb591c930823b1d5c7e6315120295a27b44ea0f951f763a2375e9ddd", kill_on_drop: false }`
[INFO] [stdout] 09cf61a3fb591c930823b1d5c7e6315120295a27b44ea0f951f763a2375e9ddd
