[INFO] cloning repository https://github.com/gariti/jwst-cosmos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gariti/jwst-cosmos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgariti%2Fjwst-cosmos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgariti%2Fjwst-cosmos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 86eb21139254913733fd75094fc0315cebee2e14
[INFO] checking gariti/jwst-cosmos against master#377656d3dd3f9c23a9c8713e163f4365a5261a84 for pr-146470-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgariti%2Fjwst-cosmos" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gariti/jwst-cosmos
[INFO] finished tweaking git repo https://github.com/gariti/jwst-cosmos
[INFO] tweaked toml for git repo https://github.com/gariti/jwst-cosmos written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gariti/jwst-cosmos on toolchain 377656d3dd3f9c23a9c8713e163f4365a5261a84
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gariti/jwst-cosmos 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" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded indoc v2.0.7
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.7
[INFO] [stderr]   Downloaded instability v0.3.10
[INFO] [stderr]   Downloaded rustls-pki-types v1.13.1
[INFO] [stderr]   Downloaded tracing-core v0.1.35
[INFO] [stderr]   Downloaded cc v1.2.49
[INFO] [stderr]   Downloaded tracing v0.1.43
[INFO] [stderr]   Downloaded tokio-util v0.7.17
[INFO] [stderr]   Downloaded iri-string v0.7.9
[INFO] [stderr]   Downloaded reqwest v0.12.25
[INFO] [stderr]   Downloaded webpki-roots v1.0.4
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.22
[INFO] [stderr]   Downloaded rustls v0.23.35
[INFO] [stderr]   Downloaded icy_sixel v0.1.3
[INFO] [stderr]   Downloaded ratatui-image v8.0.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 67ae226f63acd6570919ebe0968a6cc02bfa521829e26b0ca587c05b51801301
[INFO] running `Command { std: "docker" "start" "-a" "67ae226f63acd6570919ebe0968a6cc02bfa521829e26b0ca587c05b51801301", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "67ae226f63acd6570919ebe0968a6cc02bfa521829e26b0ca587c05b51801301", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67ae226f63acd6570919ebe0968a6cc02bfa521829e26b0ca587c05b51801301", kill_on_drop: false }`
[INFO] [stdout] 67ae226f63acd6570919ebe0968a6cc02bfa521829e26b0ca587c05b51801301
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9591ebdf45cfb4cc54935ce402afef88237f49f78f84ee37236784edef450462
[INFO] running `Command { std: "docker" "start" "-a" "9591ebdf45cfb4cc54935ce402afef88237f49f78f84ee37236784edef450462", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking tracing-core v0.1.35
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking rustls-pki-types v1.13.1
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]     Checking aligned v0.4.2
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking zune-core v0.5.0
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking zune-jpeg v0.5.6
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking webpki-roots v1.0.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking indexmap v2.12.1
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking outref v0.5.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking vsimd v0.8.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking iri-string v0.7.9
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking icy_sixel v0.1.3
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking base64-simd v0.8.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking moxcms v0.7.10
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking tracing v0.1.43
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.25
[INFO] [stderr]     Checking ratatui-image v8.0.2
[INFO] [stderr]     Checking jwst-cosmos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Line`, `ListState`, and `Span`
[INFO] [stdout]  --> src/screens/generator.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     text::{Line, Span},
[INFO] [stdout]   |            ^^^^  ^^^^
[INFO] [stdout] 9 |     widgets::{Block, Borders, Gauge, List, ListItem, ListState, Paragraph, Wrap},
[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: `ServiceStatus`
[INFO] [stdout]  --> src/screens/mod.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use services::{ServicesScreen, ServiceStatus, ConnectionMode};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/services/jwst_api.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/services/comfyui.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JwstImage`
[INFO] [stdout]   --> src/services/mod.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use jwst_api::{JwstApiService, JwstImage};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SshTunnel`
[INFO] [stdout]   --> src/services/mod.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use ssh_tunnel::{SshTunnel, TunnelManager};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OllamaModel` and `PullProgress`
[INFO] [stdout]   --> src/services/mod.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use ollama::{OllamaService, OllamaModel, PullProgress};
[INFO] [stdout]    |                                 ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WallustColors`
[INFO] [stdout]   --> src/services/mod.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use wallust::{WallustService, WallustColors};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Line`, `ListState`, and `Span`
[INFO] [stdout]  --> src/screens/generator.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     text::{Line, Span},
[INFO] [stdout]   |            ^^^^  ^^^^
[INFO] [stdout] 9 |     widgets::{Block, Borders, Gauge, List, ListItem, ListState, Paragraph, Wrap},
[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: `ServiceStatus`
[INFO] [stdout]  --> src/screens/mod.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use services::{ServicesScreen, ServiceStatus, ConnectionMode};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/services/jwst_api.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/services/comfyui.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JwstImage`
[INFO] [stdout]   --> src/services/mod.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use jwst_api::{JwstApiService, JwstImage};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SshTunnel`
[INFO] [stdout]   --> src/services/mod.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use ssh_tunnel::{SshTunnel, TunnelManager};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OllamaModel` and `PullProgress`
[INFO] [stdout]   --> src/services/mod.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use ollama::{OllamaService, OllamaModel, PullProgress};
[INFO] [stdout]    |                                 ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WallustColors`
[INFO] [stdout]   --> src/services/mod.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use wallust::{WallustService, WallustColors};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/services/comfyui.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/services/comfyui.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]     |                  ----^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]  --> src/services/comfyui.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{SinkExt, StreamExt};
[INFO] [stdout]   |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]  --> src/services/comfyui.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{SinkExt, StreamExt};
[INFO] [stdout]   |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/screens/browser.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 375 |                 let content = format!("{}{} - {}", marker, img.id, date);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/screens/browser.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 375 |                 let content = format!("{}{} - {}", marker, img.id, date);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `write`
[INFO] [stdout]    --> src/services/comfyui.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `write`
[INFO] [stdout]    --> src/services/comfyui.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `thumbnail_dir` and `parse_size` are never used
[INFO] [stdout]    --> src/config.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn thumbnail_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn parse_size(&self, size_str: &str) -> (u32, u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `api_service` is never read
[INFO] [stdout]   --> src/screens/browser.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct BrowserScreen {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 43 |     esa_service: Arc<EsaService>,
[INFO] [stdout] 44 |     api_service: Arc<JwstApiService>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ollama_service` is never read
[INFO] [stdout]   --> src/screens/generator.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct GeneratorScreen {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 58 |     comfyui_service: Arc<ComfyUiService>,
[INFO] [stdout] 59 |     ollama_service: Arc<OllamaService>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enclosure_url` is never read
[INFO] [stdout]   --> src/services/jwst_esa.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct EsaImage {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub enclosure_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EsaImage` 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 `gallery_url` is never used
[INFO] [stdout]   --> src/services/jwst_esa.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl EsaImage {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn gallery_url(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_thumbnail` and `download_image` are never used
[INFO] [stdout]    --> src/services/jwst_esa.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl EsaService {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub async fn download_thumbnail(&self, image: &EsaImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JwstImage` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct JwstImage {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageDetails` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ImageDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title` and `instruments_str` are never used
[INFO] [stdout]   --> src/services/jwst_api.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl JwstImage {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 45 |     /// Get a display title for the image.
[INFO] [stdout] 46 |     pub fn title(&self) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn instruments_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `client`, `cache_file`, and `api_key` are never read
[INFO] [stdout]   --> src/services/jwst_api.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct JwstApiService {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 79 |     config: Arc<Config>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 80 |     client: Client,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 81 |     cache_file: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 82 |     api_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/jwst_api.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl JwstApiService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn has_api_key(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn is_cache_valid(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     async fn fetch_images(&self, force_refresh: bool) -> Result<Vec<JwstImage>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub async fn get_images(&self, force_refresh: bool) -> Result<Vec<JwstImage>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub async fn download_image(&self, image: &JwstImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn download_thumbnail(&self, image: &JwstImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn is_downloaded(&self, image: &JwstImage) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remote_port` and `remote_host` are never read
[INFO] [stdout]   --> src/services/ssh_tunnel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SshTunnel {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     remote_port: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 19 |     remote_host: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `close_tunnel` and `status` are never used
[INFO] [stdout]    --> src/services/ssh_tunnel.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl TunnelManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn close_tunnel(&mut self, service_name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn status(&mut self) -> Vec<(String, bool)> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OllamaModel` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct OllamaModel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelDetails` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ModelDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size_str` and `is_vision_model` are never used
[INFO] [stdout]   --> src/services/ollama.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl OllamaModel {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 36 |     /// Get human-readable size.
[INFO] [stdout] 37 |     pub fn size_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn is_vision_model(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelsResponse` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct ModelsResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerateRequest` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct GenerateRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerateResponse` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct GenerateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullRequest` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | struct PullRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullProgress` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PullProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/ollama.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl OllamaService {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub async fn list_models(&self) -> Result<Vec<OllamaModel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub async fn list_vision_models(&self) -> Result<Vec<OllamaModel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn generate(
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub async fn analyze_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub async fn pull_model(&self, model_name: &str) -> Result<tokio::sync::mpsc::Receiver<PullProgress>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub async fn delete_model(&self, model_name: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub async fn show_model(&self, model_name: &str) -> Result<OllamaModel> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct GenerationProgress {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub node_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationProgress` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct GenerationResult {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 29 |     pub image_path: PathBuf,
[INFO] [stdout] 30 |     pub prompt_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct ExecutedData {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     prompt_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutedData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `subfolder` and `img_type` are never read
[INFO] [stdout]   --> src/services/comfyui.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct ImageOutput {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 69 |     filename: String,
[INFO] [stdout] 70 |     subfolder: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 71 |     #[serde(rename = "type")]
[INFO] [stdout] 72 |     img_type: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_loras` and `clear_queue` are never used
[INFO] [stdout]    --> src/services/comfyui.rs:528:18
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl ComfyUiService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub async fn get_loras(&self) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 579 |     pub async fn clear_queue(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WallustColors` is never constructed
[INFO] [stdout]   --> src/services/wallust.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct WallustColors {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/services/wallust.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl WallustColors {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 22 |     /// Get a specific color by index.
[INFO] [stdout] 23 |     pub fn color(&self, index: usize) -> Option<&String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get(&self, name: &str) -> Option<&String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn accent(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn accent_secondary(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn error(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn success(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn muted(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_colors`, `parse_colors_sh`, `default_colors`, `generate_colors`, `current_wallpaper`, and `current_scheme` are never used
[INFO] [stdout]    --> src/services/wallust.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl WallustService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn load_colors(&self) -> Result<WallustColors> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn parse_colors_sh(&self, content: &str) -> Result<WallustColors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn default_colors(&self) -> WallustColors {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn generate_colors(&self, image_path: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_wallpaper(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn current_scheme(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_image_dimensions` is never used
[INFO] [stdout]  --> src/utils/image_utils.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn get_image_dimensions(path: &Path) -> Result<(u32, u32)> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resize_to_fit` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn resize_to_fit(img: DynamicImage, max_width: u32, max_height: u32) -> DynamicImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_thumbnail` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn create_thumbnail(path: &Path, thumb_size: u32) -> Result<DynamicImage> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aspect_ratio_str` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn aspect_ratio_str(width: u32, height: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn gcd(a: u32, b: u32) -> u32 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `human_size` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn human_size(bytes: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Custom` is never constructed
[INFO] [stdout]   --> src/utils/image_utils.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum SizePreset {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 87 |     Custom(u32, u32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SizePreset` 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: methods `thumbnail_dir` and `parse_size` are never used
[INFO] [stdout]    --> src/config.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn thumbnail_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn parse_size(&self, size_str: &str) -> (u32, u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `api_service` is never read
[INFO] [stdout]   --> src/screens/browser.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct BrowserScreen {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 43 |     esa_service: Arc<EsaService>,
[INFO] [stdout] 44 |     api_service: Arc<JwstApiService>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ollama_service` is never read
[INFO] [stdout]   --> src/screens/generator.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct GeneratorScreen {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 58 |     comfyui_service: Arc<ComfyUiService>,
[INFO] [stdout] 59 |     ollama_service: Arc<OllamaService>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enclosure_url` is never read
[INFO] [stdout]   --> src/services/jwst_esa.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct EsaImage {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub enclosure_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EsaImage` 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 `gallery_url` is never used
[INFO] [stdout]   --> src/services/jwst_esa.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl EsaImage {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn gallery_url(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_thumbnail` and `download_image` are never used
[INFO] [stdout]    --> src/services/jwst_esa.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl EsaService {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub async fn download_thumbnail(&self, image: &EsaImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JwstImage` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct JwstImage {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageDetails` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ImageDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title` and `instruments_str` are never used
[INFO] [stdout]   --> src/services/jwst_api.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl JwstImage {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 45 |     /// Get a display title for the image.
[INFO] [stdout] 46 |     pub fn title(&self) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn instruments_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/services/jwst_api.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config`, `client`, `cache_file`, and `api_key` are never read
[INFO] [stdout]   --> src/services/jwst_api.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct JwstApiService {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 79 |     config: Arc<Config>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 80 |     client: Client,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 81 |     cache_file: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 82 |     api_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/jwst_api.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl JwstApiService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn has_api_key(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn is_cache_valid(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     async fn fetch_images(&self, force_refresh: bool) -> Result<Vec<JwstImage>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub async fn get_images(&self, force_refresh: bool) -> Result<Vec<JwstImage>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub async fn download_image(&self, image: &JwstImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn download_thumbnail(&self, image: &JwstImage) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn is_downloaded(&self, image: &JwstImage) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remote_port` and `remote_host` are never read
[INFO] [stdout]   --> src/services/ssh_tunnel.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SshTunnel {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     remote_port: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 19 |     remote_host: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `close_tunnel` and `status` are never used
[INFO] [stdout]    --> src/services/ssh_tunnel.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl TunnelManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn close_tunnel(&mut self, service_name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn status(&mut self) -> Vec<(String, bool)> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OllamaModel` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct OllamaModel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelDetails` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ModelDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size_str` and `is_vision_model` are never used
[INFO] [stdout]   --> src/services/ollama.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl OllamaModel {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 36 |     /// Get human-readable size.
[INFO] [stdout] 37 |     pub fn size_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn is_vision_model(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelsResponse` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct ModelsResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerateRequest` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct GenerateRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenerateResponse` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct GenerateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullRequest` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | struct PullRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullProgress` is never constructed
[INFO] [stdout]   --> src/services/ollama.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PullProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/ollama.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl OllamaService {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub async fn list_models(&self) -> Result<Vec<OllamaModel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub async fn list_vision_models(&self) -> Result<Vec<OllamaModel>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn generate(
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub async fn analyze_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub async fn pull_model(&self, model_name: &str) -> Result<tokio::sync::mpsc::Receiver<PullProgress>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub async fn delete_model(&self, model_name: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub async fn show_model(&self, model_name: &str) -> Result<OllamaModel> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct GenerationProgress {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub node_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationProgress` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct GenerationResult {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 29 |     pub image_path: PathBuf,
[INFO] [stdout] 30 |     pub prompt_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GenerationResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_id` is never read
[INFO] [stdout]   --> src/services/comfyui.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct ExecutedData {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     prompt_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExecutedData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `subfolder` and `img_type` are never read
[INFO] [stdout]   --> src/services/comfyui.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct ImageOutput {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 69 |     filename: String,
[INFO] [stdout] 70 |     subfolder: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 71 |     #[serde(rename = "type")]
[INFO] [stdout] 72 |     img_type: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImageOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_loras` and `clear_queue` are never used
[INFO] [stdout]    --> src/services/comfyui.rs:528:18
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl ComfyUiService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub async fn get_loras(&self) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 579 |     pub async fn clear_queue(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WallustColors` is never constructed
[INFO] [stdout]   --> src/services/wallust.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct WallustColors {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/services/wallust.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl WallustColors {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 22 |     /// Get a specific color by index.
[INFO] [stdout] 23 |     pub fn color(&self, index: usize) -> Option<&String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get(&self, name: &str) -> Option<&String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn accent(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn accent_secondary(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn error(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn success(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn muted(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_colors`, `parse_colors_sh`, `default_colors`, `generate_colors`, `current_wallpaper`, and `current_scheme` are never used
[INFO] [stdout]    --> src/services/wallust.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl WallustService {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn load_colors(&self) -> Result<WallustColors> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn parse_colors_sh(&self, content: &str) -> Result<WallustColors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn default_colors(&self) -> WallustColors {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn generate_colors(&self, image_path: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_wallpaper(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn current_scheme(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_image_dimensions` is never used
[INFO] [stdout]  --> src/utils/image_utils.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn get_image_dimensions(path: &Path) -> Result<(u32, u32)> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resize_to_fit` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn resize_to_fit(img: DynamicImage, max_width: u32, max_height: u32) -> DynamicImage {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_thumbnail` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn create_thumbnail(path: &Path, thumb_size: u32) -> Result<DynamicImage> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aspect_ratio_str` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn aspect_ratio_str(width: u32, height: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn gcd(a: u32, b: u32) -> u32 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `human_size` is never used
[INFO] [stdout]   --> src/utils/image_utils.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn human_size(bytes: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Custom` is never constructed
[INFO] [stdout]   --> src/utils/image_utils.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum SizePreset {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 87 |     Custom(u32, u32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SizePreset` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "9591ebdf45cfb4cc54935ce402afef88237f49f78f84ee37236784edef450462", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9591ebdf45cfb4cc54935ce402afef88237f49f78f84ee37236784edef450462", kill_on_drop: false }`
[INFO] [stdout] 9591ebdf45cfb4cc54935ce402afef88237f49f78f84ee37236784edef450462
