[INFO] cloning repository https://github.com/Nisugi/Profanitui
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Nisugi/Profanitui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNisugi%2FProfanitui", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNisugi%2FProfanitui'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f4bdb18254f6042caadf68443e5093d864199f42
[INFO] checking Nisugi/Profanitui against master#89a99936d9e76a50e8df622e7242190841fd871b for pr-156160-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNisugi%2FProfanitui" "/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/Nisugi/Profanitui
[INFO] finished tweaking git repo https://github.com/Nisugi/Profanitui
[INFO] tweaked toml for git repo https://github.com/Nisugi/Profanitui written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Nisugi/Profanitui on toolchain 89a99936d9e76a50e8df622e7242190841fd871b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Nisugi/Profanitui 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" "+89a99936d9e76a50e8df622e7242190841fd871b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/justinpopa/crossterm.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded instability v0.3.9
[INFO] [stderr]   Downloaded dyn-clonable v0.9.2
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.105
[INFO] [stderr]   Downloaded oxilangtag v0.1.5
[INFO] [stderr]   Downloaded speech-dispatcher v0.16.0
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.2
[INFO] [stderr]   Downloaded speech-dispatcher-sys v0.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.105
[INFO] [stderr]   Downloaded dyn-clonable-impl v0.9.2
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.6
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.105
[INFO] [stderr]   Downloaded js-sys v0.3.82
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.105
[INFO] [stderr]   Downloaded tts v0.26.3
[INFO] [stderr]   Downloaded symphonia v0.5.5
[INFO] [stderr]   Downloaded cc v1.2.46
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.5
[INFO] [stderr]   Downloaded hound v3.5.1
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.17
[INFO] [stderr]   Downloaded syn v2.0.110
[INFO] [stderr]   Downloaded sysinfo v0.30.13
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.55
[INFO] [stderr]   Downloaded is-docker v0.2.0
[INFO] [stderr]   Downloaded open v5.3.3
[INFO] [stderr]   Downloaded symphonia-core v0.5.5
[INFO] [stderr]   Downloaded mach2 v0.4.3
[INFO] [stderr]   Downloaded claxon v0.4.3
[INFO] [stderr]   Downloaded is-wsl v0.4.0
[INFO] [stderr]   Downloaded clap_derive v4.5.49
[INFO] [stderr]   Downloaded web-sys v0.3.82
[INFO] [stderr]   Downloaded clap v4.5.52
[INFO] [stderr]   Downloaded clap_builder v4.5.52
[INFO] [stderr]   Downloaded dispatch2 v0.3.0
[INFO] [stderr]   Downloaded objc2 v0.6.3
[INFO] [stderr]   Downloaded moxcms v0.7.9
[INFO] [stderr]   Downloaded pxfm v0.1.25
[INFO] [stderr]   Downloaded openssl-src v300.5.4+3.5.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:fd22e2154e7db748230f413534f3a6d034160c9d2b7c14b90fba4e9bfc1a36d4" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74
[INFO] running `Command { std: "docker" "start" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling bindgen v0.72.1
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling openssl-src v300.5.4+3.5.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking hashbrown v0.16.0
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]     Checking is-docker v0.2.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking winnow v0.7.13
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]    Compiling tts v0.26.3
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking clap_builder v4.5.52
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking is-wsl v0.4.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking oxilangtag v0.1.5
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking open v5.3.3
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling dyn-clonable-impl v0.9.2
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking dyn-clonable v0.9.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0 (https://github.com/justinpopa/crossterm.git?branch=dev#81f85a43)
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking clap v4.5.52
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking tui-textarea v0.7.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]    Compiling speech-dispatcher-sys v0.7.0
[INFO] [stderr]     Checking speech-dispatcher v0.16.0
[INFO] [stderr]     Checking vellum-fe v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `added_here` is never read
[INFO] [stdout]     --> src/core/messages.rs:2466:33
[INFO] [stdout]      |
[INFO] [stdout] 2466 |                                 added_here = true;
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                         added_here = true;
[INFO] [stdout]      |                         ----------------- `added_here` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         for (idx, field) in dialog.fields.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padded_button_len`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:466:17
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let padded_button_len = max_field_button_width_layout as u16;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padded_button_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `added_here` is never read
[INFO] [stdout]     --> src/core/messages.rs:2466:33
[INFO] [stdout]      |
[INFO] [stdout] 2466 |                                 added_here = true;
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                         added_here = true;
[INFO] [stdout]      |                         ----------------- `added_here` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         for (idx, field) in dialog.fields.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padded_button_len`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:466:17
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let padded_button_len = max_field_button_width_layout as u16;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padded_button_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sound` and `sound_volume` are never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct MatchInfo {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sound: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 68 |     sound_volume: Option<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MatchInfo` 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: field `effect_category` is never read
[INFO] [stdout]   --> src/frontend/tui/active_effects.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActiveEffects {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     container: ScrollableContainer,
[INFO] [stdout] 12 |     effect_category: String, // "spell", "disease", etc.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_effect`, `toggle_display`, `get_category`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/active_effects.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 | pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorPicker` is never constructed
[INFO] [stdout]   --> src/frontend/tui/color_picker.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ColorPicker {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/tui/color_picker.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl ColorPicker {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(palette: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn filtered_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn get_selected(&self) -> Option<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn get_selected_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn tab_complete(&mut self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn next(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn mark_recent(&mut self, color_name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn show(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn hide(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn render(&self, x: u16, y: u16, width: u16, buf: &mut Buffer, area: Rect) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn draw_border(&self, area: Rect, buf: &mut Buffer, style: Style) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn parse_hex_color(input: &str) -> Option<Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_color_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_hex_color_with_mode(hex: &str, mode: ColorMode) -> Result<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indexed_color_to_rgb` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn indexed_color_to_rgb(index: u8) -> (u8, u8, u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color_to_ratatui_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn parse_color_to_ratatui_with_mode(input: &str, mode: ColorMode) -> Option<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `clear_selection`, and `has_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn clear_selection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/dashboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct DashboardIndicator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 52 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DashboardIndicator` 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 `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     DisplayLabel { area: Rect },
[INFO] [stdout]    |     ------------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ProgressBar { area: Rect },
[INFO] [stdout]    |     -----------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_label` is never used
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn field_label(dialog: &DialogState, index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hand_type` is never read
[INFO] [stdout]   --> src/frontend/tui/hand.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hand {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     label: String,
[INFO] [stdout] 20 |     hand_type: HandType,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/hand.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hash` and `needs_update` are never used
[INFO] [stdout]   --> src/frontend/tui/highlight_utils.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl HighlightEngine {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn needs_update(&self, highlights: &[HighlightPattern]) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_status` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/indicator.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Indicator {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn set_status(&mut self, status: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 | pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inner_size`, `scroll_to_bottom`, and `get_lines` are never used
[INFO] [stdout]   --> src/frontend/tui/inventory_window.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl InventoryWindow {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn get_lines(&self) -> &[Vec<TextSegment>] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_sections` is never read
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     num_sections: usize, // Number of section headers (for scroll calculation)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom` and `find_link_by_word` are never used
[INFO] [stdout]    --> src/frontend/tui/list_widget.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ListWidget {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 686 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_offset`, `set_scroll_offset`, `scroll_up`, and `scroll_down` are never used
[INFO] [stdout]    --> src/frontend/tui/perception.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PerceptionWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn scroll_up(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn scroll_down(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_generation` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Players {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `preserve_text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/progress_bar.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ProgressBar {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     preserve_text_color: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_selection` is never used
[INFO] [stdout]   --> src/frontend/tui/quickbar.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Quickbar {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn reset_selection(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom`, `get_component_visibility`, and `set_all_component_visibility` are never used
[INFO] [stdout]    --> src/frontend/tui/room_window.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 569 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `link_data` are never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 19 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub link_data: Option<LinkData>, // Link metadata for clickable items
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScrollableItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn get_item_at_y(&self, y: u16, area: Rect) -> Option<&ScrollableItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border_config`, `set_border_sides`, `set_title`, and `render_with_focus` are never used
[INFO] [stdout]   --> src/frontend/tui/spacer.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Spacer {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_border_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn set_border_sides(&mut self, _sides: crate::config::BorderSides) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn set_title(&mut self, _title: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `drag_offset` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SpellColorBrowser {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `drag_offset` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SpellColorFormWidget {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_link_by_word`, `update_inner_size`, and `get_lines` are never used
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SpellsWindow {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn get_lines(&self) -> &[Vec<crate::data::TextSegment>] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `streams` is never read
[INFO] [stdout]   --> src/frontend/tui/tabbed_text_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct TabInfo {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 36 |     name: String,
[INFO] [stdout] 37 |     streams: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/tabbed_text_window.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn is_frozen_for_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `get_generation`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/items.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Items {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn scroll_up(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn scroll_down(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn mouse_to_text_coords(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn extract_selection_text(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ideal_content_rows` is never used
[INFO] [stdout]    --> src/frontend/tui/betrayer.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl Betrayer {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn ideal_content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regex` is never read
[INFO] [stdout]   --> src/frontend/tui/text_window.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 52 |     regex: Regex,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_title` is never read
[INFO] [stdout]   --> src/frontend/tui/container_window.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ContainerWindow {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     container_title: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_container_title`, `clear`, `get_lines`, `update_inner_size`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/container_window.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ContainerWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn get_container_title(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn get_lines(&self) -> &[Vec<TextSegment>] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_theme_id` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_cache.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ThemeCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn get_theme_id(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Form` is never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:651:5
[INFO] [stdout]     |
[INFO] [stdout] 649 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 650 |     List,
[INFO] [stdout] 651 |     Form,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IndicatorEditorMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:678:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PerfMetricGroup {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 678 |     FrameTiming,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 679 |     RenderPipeline,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 680 |     Network,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 681 |     Parser,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 682 |     Events,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 683 |     Memory,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 684 |     UptimeLines,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerfMetricGroup` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:714:8
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl PerformanceMetricsEditor {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 714 |     fn new(items: Vec<PerfMetricGroupState>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 842 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 877 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `change_selection` is never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:1283:8
[INFO] [stdout]      |
[INFO] [stdout] 1018 | impl BarOrderEditor {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1283 |     fn change_selection(&mut self, new_selected: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2727:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2727 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2818 |     fn open_performance_metrics_editor(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn perf_group_states(&self) -> Vec<PerfMetricGroupState> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7183 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7219 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7265 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7288 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7360 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `character` is never read
[INFO] [stdout]    --> src/network.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 517 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 522 |         pub character: String,
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LaunchTicket` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bold` is never read
[INFO] [stdout]    --> src/parser.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 279 |     bold: bool,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ColorStyle` 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 `current_container_id` is never read
[INFO] [stdout]    --> src/parser.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 306 |     current_container_id: Option<String>, // ID of container currently receiving items
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `XmlParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_targets_window` is never used
[INFO] [stdout]    --> tests/ui_integration.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn add_targets_window(ui_state: &mut UiState) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_players_window_with_id` is never used
[INFO] [stdout]    --> tests/ui_integration.rs:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn add_players_window_with_id(ui_state: &mut UiState, name: &str, _entity_id: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CoreHighlightEngine`, `DeferredReplacement`, `HighlightResult`, and `apply_deferred_for_window`
[INFO] [stdout]   --> src/core/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     apply_deferred_for_window, CoreHighlightEngine, DeferredReplacement, HighlightResult,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sound` and `sound_volume` are never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct MatchInfo {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sound: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 68 |     sound_volume: Option<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MatchInfo` 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: field `effect_category` is never read
[INFO] [stdout]   --> src/frontend/tui/active_effects.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActiveEffects {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     container: ScrollableContainer,
[INFO] [stdout] 12 |     effect_category: String, // "spell", "disease", etc.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_effect`, `get_category`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/active_effects.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 | pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorPicker` is never constructed
[INFO] [stdout]   --> src/frontend/tui/color_picker.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ColorPicker {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/tui/color_picker.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl ColorPicker {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(palette: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn filtered_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn get_selected(&self) -> Option<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn get_selected_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn tab_complete(&mut self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn next(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn mark_recent(&mut self, color_name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn show(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn hide(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn render(&self, x: u16, y: u16, width: u16, buf: &mut Buffer, area: Rect) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn draw_border(&self, area: Rect, buf: &mut Buffer, style: Style) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn parse_hex_color(input: &str) -> Option<Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_color_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_hex_color_with_mode(hex: &str, mode: ColorMode) -> Result<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indexed_color_to_rgb` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn indexed_color_to_rgb(index: u8) -> (u8, u8, u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color_to_ratatui_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn parse_color_to_ratatui_with_mode(input: &str, mode: ColorMode) -> Option<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `clear_selection`, and `has_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn clear_selection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/dashboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct DashboardIndicator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 52 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DashboardIndicator` 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 `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     DisplayLabel { area: Rect },
[INFO] [stdout]    |     ------------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ProgressBar { area: Rect },
[INFO] [stdout]    |     -----------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_label` is never used
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn field_label(dialog: &DialogState, index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hand_type` is never read
[INFO] [stdout]   --> src/frontend/tui/hand.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hand {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     label: String,
[INFO] [stdout] 20 |     hand_type: HandType,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/hand.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hash` and `needs_update` are never used
[INFO] [stdout]   --> src/frontend/tui/highlight_utils.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl HighlightEngine {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn needs_update(&self, highlights: &[HighlightPattern]) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/indicator.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Indicator {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 | pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inner_size` and `scroll_to_bottom` are never used
[INFO] [stdout]   --> src/frontend/tui/inventory_window.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl InventoryWindow {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_sections` is never read
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     num_sections: usize, // Number of section headers (for scroll calculation)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scroll_to_bottom` is never used
[INFO] [stdout]    --> src/frontend/tui/list_widget.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ListWidget {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `preserve_text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/progress_bar.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ProgressBar {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     preserve_text_color: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_selection` is never used
[INFO] [stdout]   --> src/frontend/tui/quickbar.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Quickbar {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn reset_selection(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom`, `get_component_visibility`, and `set_all_component_visibility` are never used
[INFO] [stdout]    --> src/frontend/tui/room_window.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 569 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `link_data` are never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 19 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub link_data: Option<LinkData>, // Link metadata for clickable items
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScrollableItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn get_item_at_y(&self, y: u16, area: Rect) -> Option<&ScrollableItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border_config`, `set_border_sides`, `set_title`, and `render_with_focus` are never used
[INFO] [stdout]   --> src/frontend/tui/spacer.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Spacer {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_border_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn set_border_sides(&mut self, _sides: crate::config::BorderSides) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn set_title(&mut self, _title: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `drag_offset` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SpellColorBrowser {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `drag_offset` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SpellColorFormWidget {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_inner_size` is never used
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SpellsWindow {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/tabbed_text_window.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn is_frozen_for_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_bar_color` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_up`, `scroll_down`, `render_with_focus`, `handle_click`, `mouse_to_text_coords`, and `extract_selection_text` are never used
[INFO] [stdout]    --> src/frontend/tui/items.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Items {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn scroll_up(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn scroll_down(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn mouse_to_text_coords(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn extract_selection_text(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regex` is never read
[INFO] [stdout]   --> src/frontend/tui/text_window.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 52 |     regex: Regex,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/container_window.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ContainerWindow {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_theme_id` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_cache.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ThemeCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn get_theme_id(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Form` is never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:651:5
[INFO] [stdout]     |
[INFO] [stdout] 649 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 650 |     List,
[INFO] [stdout] 651 |     Form,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IndicatorEditorMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:678:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PerfMetricGroup {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 678 |     FrameTiming,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 679 |     RenderPipeline,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 680 |     Network,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 681 |     Parser,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 682 |     Events,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 683 |     Memory,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 684 |     UptimeLines,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerfMetricGroup` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:714:8
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl PerformanceMetricsEditor {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 714 |     fn new(items: Vec<PerfMetricGroupState>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 842 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 877 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `change_selection` is never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:1283:8
[INFO] [stdout]      |
[INFO] [stdout] 1018 | impl BarOrderEditor {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1283 |     fn change_selection(&mut self, new_selected: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2727:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2727 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2818 |     fn open_performance_metrics_editor(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn perf_group_states(&self) -> Vec<PerfMetricGroupState> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7183 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7219 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7265 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7288 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7360 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bold` is never read
[INFO] [stdout]    --> src/parser.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 279 |     bold: bool,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ColorStyle` 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 `current_container_id` is never read
[INFO] [stdout]    --> src/parser.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 306 |     current_container_id: Option<String>, // ID of container currently receiving items
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `XmlParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CoreHighlightEngine`, `DeferredReplacement`, `HighlightResult`, and `apply_deferred_for_window`
[INFO] [stdout]   --> src/core/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     apply_deferred_for_window, CoreHighlightEngine, DeferredReplacement, HighlightResult,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `added_here` is never read
[INFO] [stdout]     --> src/core/messages.rs:2466:33
[INFO] [stdout]      |
[INFO] [stdout] 2466 |                                 added_here = true;
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                         added_here = true;
[INFO] [stdout]      |                         ----------------- `added_here` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         for (idx, field) in dialog.fields.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padded_button_len`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:466:17
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let padded_button_len = max_field_button_width_layout as u16;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padded_button_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `added_here` is never read
[INFO] [stdout]     --> src/core/messages.rs:2466:33
[INFO] [stdout]      |
[INFO] [stdout] 2466 |                                 added_here = true;
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2473 |                         added_here = true;
[INFO] [stdout]      |                         ----------------- `added_here` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `coord` is never read
[INFO] [stdout]   --> src/cmdlist.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CmdListEntry {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     pub coord: String,    // e.g., "2524,2061"
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CmdListEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `substitute_menu` is never used
[INFO] [stdout]    --> src/cmdlist.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl CmdList {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn substitute_menu(menu: &str, noun: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]    --> src/config.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl LayoutMapping {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 243 |     /// Check if terminal size matches this mapping
[INFO] [stdout] 244 |     pub fn matches(&self, width: u16, height: u16) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_slot` are never used
[INFO] [stdout]    --> src/config.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | impl PaletteColor {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 272 |     pub fn new(name: &str, color: &str, category: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_slot(name: &str, color: &str, category: &str, slot: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `content_rows` and `content_cols` are never used
[INFO] [stdout]    --> src/config.rs:786:12
[INFO] [stdout]     |
[INFO] [stdout] 760 | impl WindowBase {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 786 |     pub fn content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 791 |     pub fn content_cols(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_layout_for_size`, `list_window_templates_for_game`, `list_visible_windows`, `load`, and `get_log_path` are never used
[INFO] [stdout]     --> src/config.rs:3348:12
[INFO] [stdout]      |
[INFO] [stdout] 3345 | impl Config {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3348 |     pub fn find_layout_for_size(&self, width: u16, height: u16) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4821 |     pub fn list_window_templates_for_game(game: Option<GameType>) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5119 |     pub fn list_visible_windows(layout: &crate::config::Layout) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5128 |     pub fn load() -> Result<Self> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5709 |     pub fn get_log_path(character: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]   --> src/config/menu_keybind_validator.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl ValidationResult {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 64 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SendMacro` is never constructed
[INFO] [stdout]    --> src/config/keybinds.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub enum KeyAction {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 155 |     SendMacro(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `KeyAction` 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 fields are never read
[INFO] [stdout]    --> src/core/app_core/state.rs:51:9
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub struct AppCore {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub current_stream: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub discard_current_stream: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub stream_buffer: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub server_time_offset: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub show_perf_stats: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub chunk_has_main_text: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub chunk_has_silent_updates: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `remove_window`, `generate_spacer_name`, `resize`, `save_config`, `start_search_mode`, and `clear_search_mode` are never used
[INFO] [stdout]     --> src/core/app_core/state.rs:1413:12
[INFO] [stdout]      |
[INFO] [stdout]  144 | impl AppCore {
[INFO] [stdout]      | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1413 |     pub fn remove_window(&mut self, name: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1668 |     pub fn generate_spacer_name(layout: &Layout) -> String {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2688 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3370 |     pub fn save_config(&mut self) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3579 |     pub fn start_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3595 |     pub fn clear_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_layout_with_size` is never used
[INFO] [stdout]     --> src/core/app_core/layout.rs:1091:12
[INFO] [stdout]      |
[INFO] [stdout]    8 | impl AppCore {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1091 |     pub fn load_layout_with_size(&mut self, name: &str, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `end_char` is never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct DeferredReplacement {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub end_char: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeferredReplacement` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sound` and `sound_volume` are never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct MatchInfo {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sound: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 68 |     sound_volume: Option<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MatchInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_first_match_color` is never used
[INFO] [stdout]    --> src/core/highlight_engine.rs:581:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl CoreHighlightEngine {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub fn get_first_match_color(&self, text: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_priority_window` is never used
[INFO] [stdout]   --> src/core/input_router.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn has_priority_window(mode: &InputMode) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NextItem`, `PreviousItem`, `NextPage`, `PreviousPage`, and `New` are never constructed
[INFO] [stdout]   --> src/core/menu_actions.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MenuAction {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     NextItem,     // Same as NavigateDown for browser context
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     PreviousItem, // Same as NavigateUp for browser context
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 24 |     NextPage,     // Same as PageDown for browser context
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 25 |     PreviousPage, // Same as PageUp for browser context
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     New,  // 'N' - Alternative naming for Add
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuAction` 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: variants `TextInput` and `Dropdown` are never constructed
[INFO] [stdout]   --> src/core/menu_actions.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum ActionContext {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 69 |     TextInput,      // Focused on a TextArea field (clipboard ops)
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 70 |     Dropdown,       // Focused on dropdown field (up/down cycles)
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionContext` 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 `apply_highlights_config`, `set_spells_buffer`, and `get_spells_buffer` are never used
[INFO] [stdout]     --> src/core/messages.rs:254:12
[INFO] [stdout]      |
[INFO] [stdout]   98 | impl MessageProcessor {
[INFO] [stdout]      | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  254 |     pub fn apply_highlights_config(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3151 |     pub fn set_spells_buffer(&mut self, buffer: Vec<Vec<TextSegment>>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3156 |     pub fn get_spells_buffer(&self) -> &Vec<Vec<TextSegment>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAG_CHECK_INTERVAL_SECS` is never used
[INFO] [stdout]   --> src/core/state.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const LAG_CHECK_INTERVAL_SECS: i64 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/core/state.rs:42:9
[INFO] [stdout]     |
[INFO] [stdout]  37 | pub struct GameState {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub character_name: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub room_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub room_name: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub active_streams: HashMap<String, bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub inventory: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub active_effects: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub estimated_lag_ms: Option<i64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     last_lag_check_time: i64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GameState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `standing`, `kneeling`, `sitting`, `prone`, and `joined` are never read
[INFO] [stdout]    --> src/core/state.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct StatusInfo {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 148 |     pub standing: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 149 |     pub kneeling: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 150 |     pub sitting: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 151 |     pub prone: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub joined: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StatusInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl BountyState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_line` and `clear` are never used
[INFO] [stdout]    --> src/core/state.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 255 | impl SocietyState {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn add_line(&mut self, line: String) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:351:12
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl TargetListState {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 350 |     /// Clear the current target
[INFO] [stdout] 351 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 372 | impl DRExperienceState {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:468:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl GS4ExperienceState {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 492 | impl EncumbranceState {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `container_ids`, and `list_containers` are never used
[INFO] [stdout]    --> src/core/state.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl ContainerCache {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 618 |     pub fn get(&self, id: &str) -> Option<&ContainerData> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 623 |     pub fn container_ids(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     pub fn list_containers(&self) -> Vec<&ContainerData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_game_time`, `in_roundtime`, `in_casttime`, `roundtime_remaining`, `casttime_remaining`, and `lag_ms` are never used
[INFO] [stdout]    --> src/core/state.rs:695:12
[INFO] [stdout]     |
[INFO] [stdout] 654 | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn update_game_time(&mut self, prompt_time: i64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     pub fn in_roundtime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub fn in_casttime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 735 |     pub fn roundtime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     pub fn casttime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 753 |     pub fn lag_ms(&self) -> Option<i64> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status_text` is never read
[INFO] [stdout]   --> src/data/ui_state.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct UiState {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub status_text: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ResizeTop` is never constructed
[INFO] [stdout]    --> src/data/ui_state.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub enum DialogDragOperation {
[INFO] [stdout]     |          ------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 132 |     ResizeTop,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogDragOperation` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Navigation` and `History` are never constructed
[INFO] [stdout]    --> src/data/ui_state.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub enum InputMode {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 159 |     Navigation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 160 |     /// Scrolling through history
[INFO] [stdout] 161 |     History,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InputMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/data/ui_state.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct DialogLabel {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 244 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogLabel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/data/ui_state.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct DialogProgressBar {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 251 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogProgressBar` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_injury` is never used
[INFO] [stdout]    --> src/data/ui_state.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl InjuriesPopupState {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn get_injury(&self, body_part: &str) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `focused_window` and `focused_window_mut` are never used
[INFO] [stdout]    --> src/data/ui_state.rs:448:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl UiState {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn focused_window(&self) -> Option<&WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn focused_window_mut(&mut self) -> Option<&mut WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_selected` and `get_selected_index` are never used
[INFO] [stdout]    --> src/data/ui_state.rs:496:12
[INFO] [stdout]     |
[INFO] [stdout] 467 | impl PopupMenu {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 496 |     pub fn get_selected(&self) -> Option<&PopupMenuItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 |     pub fn get_selected_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]    --> src/data/widget.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct CountdownData {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 115 |     pub end_time: i64, // Unix timestamp when timer expires
[INFO] [stdout] 116 |     pub label: String, // Display label
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CountdownData` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_injury` and `clear_all` are never used
[INFO] [stdout]    --> src/data/widget.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl InjuryDollData {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_injury(&self, body_part: &str) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn clear_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `description`, `exits`, `players`, and `objects` are never read
[INFO] [stdout]    --> src/data/widget.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct RoomContent {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 164 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 165 |     pub description: Vec<StyledLine>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 166 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 167 |     pub players: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 168 |     pub objects: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RoomContent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_tab_unread`, `clear_tab_unread`, `clear_active_tab_unread`, and `next_unread_tab` are never used
[INFO] [stdout]    --> src/data/widget.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl TabbedTextContent {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn mark_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn clear_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn clear_active_tab_unread(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn next_unread_tab(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `content_align`, and `ephemeral` are never read
[INFO] [stdout]   --> src/data/window.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct WindowState {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub content_align: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     /// If true, this window is ephemeral (session-only, not saved to layout)
[INFO] [stdout] 18 |     pub ephemeral: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WindowState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `cursor`, and `history_index` are never read
[INFO] [stdout]    --> src/data/window.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CommandInput {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 119 |         text: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 120 |         cursor: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 121 |         history: Vec<String>,
[INFO] [stdout] 122 |         history_index: Option<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WindowContent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_text` and `new_command_input` are never used
[INFO] [stdout]    --> src/data/window.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl WindowState {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 177 |     pub fn new_text(name: impl Into<String>, max_lines: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn new_command_input(name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `as_any_mut` are never used
[INFO] [stdout]   --> src/frontend/mod.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Frontend {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn size(&self) -> (u16, u16);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn as_any_mut(&mut self) -> &mut dyn std::any::Any;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NamedColor` is never used
[INFO] [stdout]   --> src/frontend/common/color.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum NamedColor {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_rgb` is never used
[INFO] [stdout]   --> src/frontend/common/color.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl NamedColor {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 93 |     /// Convert to RGB color
[INFO] [stdout] 94 |     pub fn to_rgb(&self) -> Color {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `has_selection`, `get_last_command`, and `get_second_last_command` are never used
[INFO] [stdout]    --> src/frontend/common/command_input_model.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl CommandInputModel {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_code` are never used
[INFO] [stdout]   --> src/frontend/common/input.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | impl KeyEvent {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 87 |     /// Create a new key event
[INFO] [stdout] 88 |     pub fn new(code: KeyCode, modifiers: KeyModifiers) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn from_code(code: KeyCode) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SHIFT`, `ALT`, `is_empty`, `contains_ctrl`, and `contains_alt` are never used
[INFO] [stdout]    --> src/frontend/common/input.rs:125:15
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub const SHIFT: Self = KeyModifiers {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub const ALT: Self = KeyModifiers {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn contains_ctrl(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn contains_alt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `button`, `is_left_click`, and `is_right_click` are never used
[INFO] [stdout]    --> src/frontend/common/input.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl MouseEvent {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn button(&self) -> Option<MouseButton> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn is_left_click(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn is_right_click(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rect` is never constructed
[INFO] [stdout]   --> src/frontend/common/rect.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Rect {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `contains`, `right`, and `bottom` are never used
[INFO] [stdout]   --> src/frontend/common/rect.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Rect {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 24 |     /// Create a new rectangle with the given position and dimensions
[INFO] [stdout] 25 |     pub fn new(x: u16, y: u16, width: u16, height: u16) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn contains(&self, x: u16, y: u16) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn right(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn bottom(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CursorMove` is never used
[INFO] [stdout]   --> src/frontend/common/text_input.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum CursorMove {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `TextInput` is never used
[INFO] [stdout]   --> src/frontend/common/text_input.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait TextInput {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `TextEditor` is never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait TextEditor: TextInput {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_text_input_key` is never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn handle_text_input_key(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BorderConfig` is never constructed
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct BorderConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorConfig` is never constructed
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ColorConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBarData` is never constructed
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct ProgressBarData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_border`, and `with_colors` are never used
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl ProgressBarData {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 63 |     /// Create progress bar data from raw values
[INFO] [stdout] 64 |     pub fn new(label: String, current: u32, max: u32, custom_text: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn with_border(mut self, border: BorderConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn with_colors(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndicatorData` is never constructed
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct IndicatorData {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_colors` are never used
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl IndicatorData {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 120 |     pub fn new(label: String, active: bool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn with_colors(mut self, off_color: String, on_color: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CountdownData` is never constructed
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct CountdownData {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_border` are never used
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl CountdownData {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 154 |     /// Create countdown data from remaining seconds and available width
[INFO] [stdout] 155 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn with_border(mut self, border: BorderConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HandType` is never used
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub enum HandType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HandData` is never constructed
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct HandData {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_icon`, and `with_colors` are never used
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl HandData {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 217 |     pub fn new(label: String, hand_type: HandType, content: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn with_icon(mut self, icon: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn with_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/frontend/events.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FrontendEvent {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FrontendEvent` 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: associated functions `key`, `mouse`, `resize`, `paste`, and `quit` are never used
[INFO] [stdout]   --> src/frontend/events.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl FrontendEvent {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 28 |     /// Create a key event
[INFO] [stdout] 29 |     pub fn key(code: KeyCode, modifiers: KeyModifiers) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn mouse(event: MouseEvent) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn resize(width: u16, height: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn paste(text: String) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn quit() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `effect_category` is never read
[INFO] [stdout]   --> src/frontend/tui/active_effects.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActiveEffects {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     container: ScrollableContainer,
[INFO] [stdout] 12 |     effect_category: String, // "spell", "disease", etc.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_effect`, `toggle_display`, `get_category`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/active_effects.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 | pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_key_event` is never used
[INFO] [stdout]   --> src/frontend/tui/crossterm_bridge.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn convert_key_event(event: ct::KeyEvent) -> Option<KeyEvent> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_crossterm_key_event` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn to_crossterm_key_event(event: &KeyEvent) -> ct::KeyEvent {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_ratatui_color` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn from_ratatui_color(color: ratatui_style::Color) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `named_to_ratatui` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn named_to_ratatui(color: NamedColor) -> ratatui_style::Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_ratatui_rect` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn to_ratatui_rect(rect: crate::frontend::common::Rect) -> ratatui::layout::Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_ratatui_rect` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:279:8
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub fn from_ratatui_rect(rect: ratatui::layout::Rect) -> crate::frontend::common::Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_edit`, `get_is_global`, and `get_original_name` are never used
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:91:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl ColorForm {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn new_edit(palette_color: &PaletteColor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_is_global(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 786 |     pub fn get_original_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:806:11
[INFO] [stdout]     |
[INFO] [stdout] 806 |     Error(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FormAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 806 -     Error(String),
[INFO] [stdout] 806 +     Error(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Delete` and `Cancel` are never constructed
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:804:5
[INFO] [stdout]     |
[INFO] [stdout] 798 | pub enum FormAction {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 804 |     Delete,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 805 |     Cancel,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FormAction` 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: associated items `new`, `set_filter`, `get_colors`, `page_up`, and `page_down` are never used
[INFO] [stdout]    --> src/frontend/tui/color_palette_browser.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ColorPaletteBrowser {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn new(colors: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn page_up(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn page_down(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorPicker` is never constructed
[INFO] [stdout]   --> src/frontend/tui/color_picker.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ColorPicker {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/tui/color_picker.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl ColorPicker {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(palette: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn filtered_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn get_selected(&self) -> Option<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn get_selected_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn tab_complete(&mut self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn next(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn mark_recent(&mut self, color_name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn show(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn hide(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn render(&self, x: u16, y: u16, width: u16, buf: &mut Buffer, area: Rect) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn draw_border(&self, area: Rect, buf: &mut Buffer, style: Style) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn parse_hex_color(input: &str) -> Option<Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_color_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_hex_color_with_mode(hex: &str, mode: ColorMode) -> Result<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indexed_color_to_rgb` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn indexed_color_to_rgb(index: u8) -> (u8, u8, u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color_to_ratatui_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn parse_color_to_ratatui_with_mode(input: &str, mode: ColorMode) -> Option<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `clear_selection`, and `has_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn clear_selection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/dashboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct DashboardIndicator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 52 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DashboardIndicator` 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 `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     DisplayLabel { area: Rect },
[INFO] [stdout]    |     ------------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ProgressBar { area: Rect },
[INFO] [stdout]    |     -----------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_label` is never used
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn field_label(dialog: &DialogState, index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hand_type` is never read
[INFO] [stdout]   --> src/frontend/tui/hand.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hand {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     label: String,
[INFO] [stdout] 20 |     hand_type: HandType,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/hand.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pattern` is never read
[INFO] [stdout]   --> src/frontend/tui/highlight_browser.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct HighlightEntry {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 34 |     pub name: String,
[INFO] [stdout] 35 |     pub pattern: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HighlightEntry` 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 `set_category_filter` are never used
[INFO] [stdout]    --> src/frontend/tui/highlight_browser.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl HighlightBrowser {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn new(highlights: &HashMap<String, crate::config::HighlightPattern>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn set_category_filter(&mut self, category: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Delete` is never constructed
[INFO] [stdout]   --> src/frontend/tui/highlight_form.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum FormResult {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     Delete {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FormResult` 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: associated items `with_pattern` and `is_global` are never used
[INFO] [stdout]    --> src/frontend/tui/highlight_form.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl HighlightFormWidget {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn with_pattern(name: String, pattern: HighlightPattern) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn is_global(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hash` and `needs_update` are never used
[INFO] [stdout]   --> src/frontend/tui/highlight_utils.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl HighlightEngine {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn needs_update(&self, highlights: &[HighlightPattern]) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `handle_paste` is never used
[INFO] [stdout]    --> src/frontend/tui/indicator_template_editor.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl IndicatorTemplateEditor {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn handle_paste(&mut self, text: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_status` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/indicator.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Indicator {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn set_status(&mut self, status: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 | pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inner_size`, `scroll_to_bottom`, and `get_lines` are never used
[INFO] [stdout]   --> src/frontend/tui/inventory_window.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl InventoryWindow {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn get_lines(&self) -> &[Vec<TextSegment>] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Add` is never constructed
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum KeybindBrowserMouseAction {
[INFO] [stdout]    |          ------------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Add,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeybindBrowserMouseAction` 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 `num_sections` is never read
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     num_sections: usize, // Number of section headers (for scroll calculation)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl KeybindBrowser {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn new(keybinds: &HashMap<String, crate::config::KeyBindAction>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom` and `find_link_by_word` are never used
[INFO] [stdout]    --> src/frontend/tui/list_widget.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ListWidget {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 686 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/keybind_form.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum KeybindFormResult {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeybindFormResult` 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 `get_current_section` is never used
[INFO] [stdout]    --> src/frontend/tui/keybind_form.rs:945:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl KeybindFormWidget {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 945 |     pub fn get_current_section(&self) -> ActionSection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_settings_items` is never used
[INFO] [stdout]   --> src/frontend/tui/menu_builders.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn build_settings_items(config: &config::Config) -> Vec<SettingItem> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_hidewindow_picker` is never used
[INFO] [stdout]    --> src/frontend/tui/menu_builders.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn build_hidewindow_picker(app_core: &AppCore) -> Vec<PopupMenuItem> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_offset`, `set_scroll_offset`, `scroll_up`, and `scroll_down` are never used
[INFO] [stdout]    --> src/frontend/tui/perception.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PerceptionWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn scroll_up(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn scroll_down(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_generation` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Players {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `preserve_text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/progress_bar.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ProgressBar {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     preserve_text_color: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_selection` is never used
[INFO] [stdout]   --> src/frontend/tui/quickbar.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Quickbar {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn reset_selection(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom`, `get_component_visibility`, and `set_all_component_visibility` are never used
[INFO] [stdout]    --> src/frontend/tui/room_window.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 569 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `room_window_clear_components`, `room_window_start_component`, `room_window_add_segment`, `room_window_finish_line`, `room_window_finish_component`, and `room_window_set_title` are never used
[INFO] [stdout]   --> src/frontend/tui/room_window_ops.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout]  3 | impl TuiFrontend {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn room_window_clear_components(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn room_window_start_component(&mut self, window_name: &str, component_id: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn room_window_add_segment(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn room_window_finish_line(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn room_window_finish_component(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn room_window_set_title(&mut self, window_name: &str, title: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_search_info` is never used
[INFO] [stdout]    --> src/frontend/tui/search.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout]   3 | impl TuiFrontend {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_search_info(&self, window_name: &str) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `link_data` are never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 19 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub link_data: Option<LinkData>, // Link metadata for clickable items
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScrollableItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn get_item_at_y(&self, y: u16, area: Rect) -> Option<&ScrollableItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Color` is never constructed
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum SettingValue {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Color(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingValue` 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 `description` is never read
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct SettingItem {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingItem` 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 `set_category_filter`, `get_selected_is_global`, `get_selected_key_and_scope`, `next_page`, and `previous_page` are never used
[INFO] [stdout]     --> src/frontend/tui/settings_editor.rs:126:12
[INFO] [stdout]      |
[INFO] [stdout]  109 | impl SettingsEditor {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  126 |     pub fn set_category_filter(&mut self, category: Option<String>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  298 |     pub fn get_selected_is_global(&self) -> Option<bool> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  303 |     pub fn get_selected_key_and_scope(&self) -> Option<(String, bool)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 |     pub fn next_page(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1103 |     pub fn previous_page(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border_config`, `set_border_sides`, `set_title`, and `render_with_focus` are never used
[INFO] [stdout]   --> src/frontend/tui/spacer.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Spacer {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_border_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn set_border_sides(&mut self, _sides: crate::config::BorderSides) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn set_title(&mut self, _title: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SpellColorEntry {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub text_color: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_dragging` and `drag_offset` are never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SpellColorBrowser {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 29 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum SpellColorFormResult {
[INFO] [stdout]    |          -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 28 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpellColorFormResult` 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 `is_dragging` and `drag_offset` are never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SpellColorFormWidget {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 40 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_link_by_word`, `update_inner_size`, and `get_lines` are never used
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SpellsWindow {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn get_lines(&self) -> &[Vec<crate::data::TextSegment>] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `streams` is never read
[INFO] [stdout]   --> src/frontend/tui/tabbed_text_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct TabInfo {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 36 |     name: String,
[INFO] [stdout] 37 |     streams: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/tabbed_text_window.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn is_frozen_for_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 610 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `get_generation`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/items.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Items {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn scroll_up(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn scroll_down(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn mouse_to_text_coords(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn extract_selection_text(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ideal_content_rows` is never used
[INFO] [stdout]    --> src/frontend/tui/betrayer.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl Betrayer {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn ideal_content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regex` is never read
[INFO] [stdout]   --> src/frontend/tui/text_window.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 52 |     regex: Regex,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_title` is never read
[INFO] [stdout]   --> src/frontend/tui/container_window.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ContainerWindow {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     container_title: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_container_title`, `clear`, `get_lines`, `update_inner_size`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/container_window.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ContainerWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn get_container_title(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn get_lines(&self) -> &[Vec<TextSegment>] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/theme_editor.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ThemeEditorResult {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 22 |     Save(ThemeData),
[INFO] [stdout] 23 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThemeEditorResult` 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: associated function `new` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_editor.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ThemeEditor {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_theme_id` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_cache.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ThemeCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn get_theme_id(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UIColorEditorResult` is never used
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum UIColorEditorResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entry_type` is never read
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct UIColorEntry {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub entry_type: UIColorEntryType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UIColorEntry` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct UIColorEditor {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 44 |     asset_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 45 |     color_fg: TextArea<'static>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 46 |     color_bg: TextArea<'static>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     focused_field: usize, // 0 = fg, 1 = bg
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 48 |     popup_x: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     popup_y: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 50 |     pub dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     drag_offset_x: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     drag_offset_y: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     textarea_bg_color: Color,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse_color_static`, `handle_key`, `handle_mouse`, `render`, and `parse_color` are never used
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:57:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl UIColorEditor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  57 |     pub fn new(entry: &UIColorEntry, textarea_bg: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn parse_color_static(color_str: &str) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn handle_key(&mut self, key: KeyEvent) -> Option<UIColorEditorResult> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn handle_mouse(&mut self, mouse_col: u16, mouse_row: u16, mouse_down: bool, area: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn render(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     fn parse_color(&self, color_str: &str) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `drag_offset_x`, `drag_offset_y`, and `editor` are never read
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub struct UIColorsBrowser {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub dragging: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 428 |     drag_offset_x: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 429 |     drag_offset_y: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub editor: Option<UIColorEditor>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `open_editor`, `close_editor`, `save_editor`, and `handle_mouse` are never used
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:602:12
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl UIColorsBrowser {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn open_editor(&mut self, textarea_bg: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn close_editor(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     pub fn save_editor(&mut self) -> Option<(String, String, Option<String>, Option<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 628 |     pub fn handle_mouse(&mut self, mouse_col: u16, mouse_row: u16, mouse_down: bool, area: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Form` is never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:651:5
[INFO] [stdout]     |
[INFO] [stdout] 649 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 650 |     List,
[INFO] [stdout] 651 |     Form,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IndicatorEditorMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:678:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PerfMetricGroup {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 678 |     FrameTiming,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 679 |     RenderPipeline,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 680 |     Network,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 681 |     Parser,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 682 |     Events,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 683 |     Memory,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 684 |     UptimeLines,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerfMetricGroup` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:714:8
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl PerformanceMetricsEditor {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 714 |     fn new(items: Vec<PerfMetricGroupState>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 842 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 877 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `change_selection` is never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:1283:8
[INFO] [stdout]      |
[INFO] [stdout] 1018 | impl BarOrderEditor {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1283 |     fn change_selection(&mut self, new_selected: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2727:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2727 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2818 |     fn open_performance_metrics_editor(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn perf_group_states(&self) -> Vec<PerfMetricGroupState> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3847 |     pub fn handle_sub_editor_reorder(&mut self, down: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4764 |     pub fn cancel(&mut self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4769 |     pub fn get_editor_geometry(&self) -> (u16, u16, u16, u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7183 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7219 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7265 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7288 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7360 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `page_up`, `page_down`, `home`, and `end` are never used
[INFO] [stdout]   --> src/frontend/tui/widget_traits.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Navigable {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn page_up(&mut self);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn page_down(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn home(&mut self) {}
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn end(&mut self) {}
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Selectable` is never used
[INFO] [stdout]   --> src/frontend/tui/widget_traits.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Selectable {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cyclable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub trait Cyclable {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `field_count` and `current_field` are never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub trait FieldNavigable {
[INFO] [stdout]     |           -------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn field_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn current_field(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Saveable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:127:11
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub trait Saveable {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Reorderable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub trait Reorderable {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListManageable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:151:11
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub trait ListManageable {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `destination`, `windows_converted`, and `windows_skipped` are never read
[INFO] [stdout]   --> src/migrate.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct MigratedFile {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 95 |     pub source: PathBuf,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 96 |     pub destination: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 97 |     pub windows_converted: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98 |     pub windows_skipped: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MigratedFile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `character` is never read
[INFO] [stdout]    --> src/network.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 517 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 522 |         pub character: String,
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LaunchTicket` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `System` is never constructed
[INFO] [stdout]   --> src/parser.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum SpanType {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     System,      // Client/system messages (not produced by parser; used for UI echoes)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpanType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParsedSpan` is never constructed
[INFO] [stdout]   --> src/parser.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ParsedSpan {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `event_type`, `action`, and `duration` are never read
[INFO] [stdout]    --> src/parser.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     Event {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 221 |         event_type: String,  // "stun", "webbed", "prone", etc.
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 222 |         action: EventAction, // Set/Clear/Increment
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 223 |         duration: u32,       // Duration in seconds (for countdowns)
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `targets` is never read
[INFO] [stdout]    --> src/parser.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     TargetList {
[INFO] [stdout]     |     ---------- field in this variant
[INFO] [stdout] 230 |         current_target: String,  // from value attribute
[INFO] [stdout] 231 |         targets: Vec<String>,    // from content_text (comma-split)
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `target` is never read
[INFO] [stdout]    --> src/parser.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     Container {
[INFO] [stdout]     |     --------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 238 |         target: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `bold` is never read
[INFO] [stdout]    --> src/parser.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 279 |     bold: bool,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ColorStyle` 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 `current_container_id` is never read
[INFO] [stdout]    --> src/parser.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 306 |     current_container_id: Option<String>, // ID of container currently receiving items
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `XmlParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `render_spike_threshold_ms` is never read
[INFO] [stdout]   --> src/performance.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PerformanceStats {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     render_spike_threshold_ms: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerformanceStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/performance.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl PerformanceStats {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn avg_frame_time_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn min_frame_time_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn max_frame_time_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub fn last_event_queue_depth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     pub fn total_events_processed(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn frame_jitter_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn frame_spike_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     pub fn event_lag_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn memory_delta_mb(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `screen_to_window_coords` is never used
[INFO] [stdout]    --> src/selection.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn screen_to_window_coords(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_enabled` and `set_volume` are never used
[INFO] [stdout]   --> src/sound.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl SoundPlayer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_volume(&mut self, volume: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UtteranceStarted` and `UtteranceStopped` are never constructed
[INFO] [stdout]   --> src/tts/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TtsEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 19 |     UtteranceStarted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     UtteranceEnded,
[INFO] [stdout] 21 |     UtteranceStopped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TtsEvent` 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: variant `Critical` is never constructed
[INFO] [stdout]   --> src/tts/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Priority {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Critical = 2, // Damage warnings, death, critical alerts
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Priority` 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 `auto_play_next`, `clear_queue`, `queue_size`, `is_enabled`, and `set_enabled` are never used
[INFO] [stdout]    --> src/tts/mod.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl TtsManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn auto_play_next(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn queue_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `overlaps` are never used
[INFO] [stdout]   --> src/window_position/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl WindowRect {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 38 |     pub fn new(x: i32, y: i32, width: u32, height: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn overlaps(&self, other: &WindowRect) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         for (idx, field) in dialog.fields.iter().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padded_button_len`
[INFO] [stdout]    --> src/frontend/tui/dialog.rs:466:17
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let padded_button_len = max_field_button_width_layout as u16;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padded_button_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]    --> src/config.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl LayoutMapping {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 243 |     /// Check if terminal size matches this mapping
[INFO] [stdout] 244 |     pub fn matches(&self, width: u16, height: u16) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_slot` are never used
[INFO] [stdout]    --> src/config.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | impl PaletteColor {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 272 |     pub fn new(name: &str, color: &str, category: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_slot(name: &str, color: &str, category: &str, slot: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `content_rows` and `content_cols` are never used
[INFO] [stdout]    --> src/config.rs:786:12
[INFO] [stdout]     |
[INFO] [stdout] 760 | impl WindowBase {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 786 |     pub fn content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 791 |     pub fn content_cols(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_layout_for_size`, `list_window_templates_for_game`, `list_visible_windows`, `load`, and `get_log_path` are never used
[INFO] [stdout]     --> src/config.rs:3348:12
[INFO] [stdout]      |
[INFO] [stdout] 3345 | impl Config {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3348 |     pub fn find_layout_for_size(&self, width: u16, height: u16) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4821 |     pub fn list_window_templates_for_game(game: Option<GameType>) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5119 |     pub fn list_visible_windows(layout: &crate::config::Layout) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5128 |     pub fn load() -> Result<Self> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5709 |     pub fn get_log_path(character: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/core/app_core/state.rs:51:9
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub struct AppCore {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub current_stream: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub discard_current_stream: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub stream_buffer: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub server_time_offset: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub show_perf_stats: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub chunk_has_main_text: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub chunk_has_silent_updates: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_window`, `resize`, `save_config`, `start_search_mode`, and `clear_search_mode` are never used
[INFO] [stdout]     --> src/core/app_core/state.rs:1413:12
[INFO] [stdout]      |
[INFO] [stdout]  144 | impl AppCore {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1413 |     pub fn remove_window(&mut self, name: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2688 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3370 |     pub fn save_config(&mut self) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3579 |     pub fn start_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3595 |     pub fn clear_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_layout_with_size` is never used
[INFO] [stdout]     --> src/core/app_core/layout.rs:1091:12
[INFO] [stdout]      |
[INFO] [stdout]    8 | impl AppCore {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1091 |     pub fn load_layout_with_size(&mut self, name: &str, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `end_char` is never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct DeferredReplacement {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub end_char: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeferredReplacement` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sound` and `sound_volume` are never read
[INFO] [stdout]   --> src/core/highlight_engine.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct MatchInfo {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sound: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 68 |     sound_volume: Option<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MatchInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NextItem`, `PreviousItem`, `NextPage`, `PreviousPage`, and `New` are never constructed
[INFO] [stdout]   --> src/core/menu_actions.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MenuAction {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     NextItem,     // Same as NavigateDown for browser context
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     PreviousItem, // Same as NavigateUp for browser context
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 24 |     NextPage,     // Same as PageDown for browser context
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 25 |     PreviousPage, // Same as PageUp for browser context
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     New,  // 'N' - Alternative naming for Add
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuAction` 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: variants `TextInput` and `Dropdown` are never constructed
[INFO] [stdout]   --> src/core/menu_actions.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub enum ActionContext {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 69 |     TextInput,      // Focused on a TextArea field (clipboard ops)
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 70 |     Dropdown,       // Focused on dropdown field (up/down cycles)
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionContext` 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 `apply_highlights_config`, `set_spells_buffer`, and `get_spells_buffer` are never used
[INFO] [stdout]     --> src/core/messages.rs:254:12
[INFO] [stdout]      |
[INFO] [stdout]   98 | impl MessageProcessor {
[INFO] [stdout]      | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  254 |     pub fn apply_highlights_config(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3151 |     pub fn set_spells_buffer(&mut self, buffer: Vec<Vec<TextSegment>>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3156 |     pub fn get_spells_buffer(&self) -> &Vec<Vec<TextSegment>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl BountyState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_line` and `clear` are never used
[INFO] [stdout]    --> src/core/state.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 255 | impl SocietyState {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn add_line(&mut self, line: String) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:351:12
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl TargetListState {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 350 |     /// Clear the current target
[INFO] [stdout] 351 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 372 | impl DRExperienceState {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:468:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl GS4ExperienceState {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/core/state.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 492 | impl EncumbranceState {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `container_ids`, and `list_containers` are never used
[INFO] [stdout]    --> src/core/state.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl ContainerCache {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 618 |     pub fn get(&self, id: &str) -> Option<&ContainerData> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 623 |     pub fn container_ids(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     pub fn list_containers(&self) -> Vec<&ContainerData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ResizeTop` is never constructed
[INFO] [stdout]    --> src/data/ui_state.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub enum DialogDragOperation {
[INFO] [stdout]     |          ------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 132 |     ResizeTop,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogDragOperation` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/data/ui_state.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct DialogLabel {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 244 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogLabel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/data/ui_state.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct DialogProgressBar {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 251 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DialogProgressBar` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_injury` is never used
[INFO] [stdout]    --> src/data/ui_state.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl InjuriesPopupState {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn get_injury(&self, body_part: &str) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `focused_window_mut` is never used
[INFO] [stdout]    --> src/data/ui_state.rs:455:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl UiState {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn focused_window_mut(&mut self) -> Option<&mut WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]    --> src/data/widget.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct CountdownData {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 115 |     pub end_time: i64, // Unix timestamp when timer expires
[INFO] [stdout] 116 |     pub label: String, // Display label
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CountdownData` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `description`, `exits`, `players`, and `objects` are never read
[INFO] [stdout]    --> src/data/widget.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct RoomContent {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 164 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 165 |     pub description: Vec<StyledLine>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 166 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 167 |     pub players: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 168 |     pub objects: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RoomContent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_tab_unread`, `clear_tab_unread`, `clear_active_tab_unread`, and `next_unread_tab` are never used
[INFO] [stdout]    --> src/data/widget.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl TabbedTextContent {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn mark_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn clear_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn clear_active_tab_unread(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn next_unread_tab(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ephemeral` is never read
[INFO] [stdout]   --> src/data/window.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct WindowState {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub ephemeral: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WindowState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `as_any_mut` are never used
[INFO] [stdout]   --> src/frontend/mod.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Frontend {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn size(&self) -> (u16, u16);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn as_any_mut(&mut self) -> &mut dyn std::any::Any;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, and `get_second_last_command` are never used
[INFO] [stdout]    --> src/frontend/common/command_input_model.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl CommandInputModel {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:52:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | pub trait TextInput {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn set_text(&mut self, text: String);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn delete_current_line(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     fn cursor_position(&self) -> (u16, u16);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn cancel_selection(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn has_selection(&self) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn yank_text(&self) -> String;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn clear(&mut self);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cut` is never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait TextEditor: TextInput {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn cut(&mut self) -> String {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cursor_pos` is never read
[INFO] [stdout]    --> src/frontend/common/text_input.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |     struct MockTextInput {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 350 |         text: String,
[INFO] [stdout] 351 |         cursor_pos: (u16, u16),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_background_color` is never read
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct ProgressBarData {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub window_background_color: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressBarData` 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 `border_sides` is never read
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct HandData {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub border_sides: crate::config::BorderSides,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HandData` 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: associated function `paste` is never used
[INFO] [stdout]   --> src/frontend/events.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl FrontendEvent {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn paste(text: String) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `effect_category` is never read
[INFO] [stdout]   --> src/frontend/tui/active_effects.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActiveEffects {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 11 |     container: ScrollableContainer,
[INFO] [stdout] 12 |     effect_category: String, // "spell", "disease", etc.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_effect`, `get_category`, `set_bar_color`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/active_effects.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 | pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_key_event` is never used
[INFO] [stdout]   --> src/frontend/tui/crossterm_bridge.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn convert_key_event(event: ct::KeyEvent) -> Option<KeyEvent> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_crossterm_key_event` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn to_crossterm_key_event(event: &KeyEvent) -> ct::KeyEvent {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_ratatui_color` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn from_ratatui_color(color: ratatui_style::Color) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `named_to_ratatui` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn named_to_ratatui(color: NamedColor) -> ratatui_style::Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_ratatui_rect` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn to_ratatui_rect(rect: crate::frontend::common::Rect) -> ratatui::layout::Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_ratatui_rect` is never used
[INFO] [stdout]    --> src/frontend/tui/crossterm_bridge.rs:279:8
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub fn from_ratatui_rect(rect: ratatui::layout::Rect) -> crate::frontend::common::Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_edit`, `get_is_global`, and `get_original_name` are never used
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:91:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl ColorForm {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn new_edit(palette_color: &PaletteColor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_is_global(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 786 |     pub fn get_original_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:806:11
[INFO] [stdout]     |
[INFO] [stdout] 806 |     Error(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FormAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 806 -     Error(String),
[INFO] [stdout] 806 +     Error(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Delete` and `Cancel` are never constructed
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:804:5
[INFO] [stdout]     |
[INFO] [stdout] 798 | pub enum FormAction {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 804 |     Delete,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 805 |     Cancel,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FormAction` 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: associated items `new`, `set_filter`, `get_colors`, `page_up`, and `page_down` are never used
[INFO] [stdout]    --> src/frontend/tui/color_palette_browser.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ColorPaletteBrowser {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn new(colors: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn page_up(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn page_down(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorPicker` is never constructed
[INFO] [stdout]   --> src/frontend/tui/color_picker.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ColorPicker {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/tui/color_picker.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl ColorPicker {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(palette: Vec<PaletteColor>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn filtered_colors(&self) -> Vec<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn get_selected(&self) -> Option<&PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn get_selected_name(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn tab_complete(&mut self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn next(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn mark_recent(&mut self, color_name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn show(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn hide(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn render(&self, x: u16, y: u16, width: u16, buf: &mut Buffer, area: Rect) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn draw_border(&self, area: Rect, buf: &mut Buffer, style: Style) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn parse_hex_color(input: &str) -> Option<Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_color_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_hex_color_with_mode(hex: &str, mode: ColorMode) -> Result<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indexed_color_to_rgb` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn indexed_color_to_rgb(index: u8) -> (u8, u8, u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color_to_ratatui_with_mode` is never used
[INFO] [stdout]    --> src/frontend/tui/colors.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub fn parse_color_to_ratatui_with_mode(input: &str, mode: ColorMode) -> Option<ratatui::style::Color> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `clear_selection`, and `has_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn clear_selection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/dashboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct DashboardIndicator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 52 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DashboardIndicator` 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 `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     DisplayLabel { area: Rect },
[INFO] [stdout]    |     ------------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `area` is never read
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ProgressBar { area: Rect },
[INFO] [stdout]    |     -----------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `field_label` is never used
[INFO] [stdout]   --> src/frontend/tui/dialog.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn field_label(dialog: &DialogState, index: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hand_type` is never read
[INFO] [stdout]   --> src/frontend/tui/hand.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Hand {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 19 |     label: String,
[INFO] [stdout] 20 |     hand_type: HandType,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/hand.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pattern` is never read
[INFO] [stdout]   --> src/frontend/tui/highlight_browser.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct HighlightEntry {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 34 |     pub name: String,
[INFO] [stdout] 35 |     pub pattern: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HighlightEntry` 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 `set_category_filter` are never used
[INFO] [stdout]    --> src/frontend/tui/highlight_browser.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl HighlightBrowser {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn new(highlights: &HashMap<String, crate::config::HighlightPattern>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn set_category_filter(&mut self, category: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Delete` is never constructed
[INFO] [stdout]   --> src/frontend/tui/highlight_form.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum FormResult {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     Delete {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FormResult` 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: associated items `with_pattern` and `is_global` are never used
[INFO] [stdout]    --> src/frontend/tui/highlight_form.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl HighlightFormWidget {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn with_pattern(name: String, pattern: HighlightPattern) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn is_global(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hash` and `needs_update` are never used
[INFO] [stdout]   --> src/frontend/tui/highlight_utils.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl HighlightEngine {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn needs_update(&self, highlights: &[HighlightPattern]) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `handle_paste` is never used
[INFO] [stdout]    --> src/frontend/tui/indicator_template_editor.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl IndicatorTemplateEditor {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn handle_paste(&mut self, text: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/indicator.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Indicator {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 | pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_inner_size` and `scroll_to_bottom` are never used
[INFO] [stdout]   --> src/frontend/tui/inventory_window.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl InventoryWindow {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Add` is never constructed
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum KeybindBrowserMouseAction {
[INFO] [stdout]    |          ------------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Add,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeybindBrowserMouseAction` 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 `num_sections` is never read
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     num_sections: usize, // Number of section headers (for scroll calculation)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl KeybindBrowser {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn new(keybinds: &HashMap<String, crate::config::KeyBindAction>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scroll_to_bottom` is never used
[INFO] [stdout]    --> src/frontend/tui/list_widget.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ListWidget {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/keybind_form.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum KeybindFormResult {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeybindFormResult` 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 `get_current_section` is never used
[INFO] [stdout]    --> src/frontend/tui/keybind_form.rs:945:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl KeybindFormWidget {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 945 |     pub fn get_current_section(&self) -> ActionSection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_settings_items` is never used
[INFO] [stdout]   --> src/frontend/tui/menu_builders.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn build_settings_items(config: &config::Config) -> Vec<SettingItem> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_hidewindow_picker` is never used
[INFO] [stdout]    --> src/frontend/tui/menu_builders.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn build_hidewindow_picker(app_core: &AppCore) -> Vec<PopupMenuItem> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `preserve_text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/progress_bar.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ProgressBar {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     preserve_text_color: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_selection` is never used
[INFO] [stdout]   --> src/frontend/tui/quickbar.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Quickbar {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn reset_selection(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_to_bottom`, `get_component_visibility`, and `set_all_component_visibility` are never used
[INFO] [stdout]    --> src/frontend/tui/room_window.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 569 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `room_window_clear_components`, `room_window_start_component`, `room_window_add_segment`, `room_window_finish_line`, `room_window_finish_component`, and `room_window_set_title` are never used
[INFO] [stdout]   --> src/frontend/tui/room_window_ops.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout]  3 | impl TuiFrontend {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn room_window_clear_components(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn room_window_start_component(&mut self, window_name: &str, component_id: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn room_window_add_segment(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn room_window_finish_line(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn room_window_finish_component(&mut self, window_name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn room_window_set_title(&mut self, window_name: &str, title: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_search_info` is never used
[INFO] [stdout]    --> src/frontend/tui/search.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout]   3 | impl TuiFrontend {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_search_info(&self, window_name: &str) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `link_data` are never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 19 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub link_data: Option<LinkData>, // Link metadata for clickable items
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScrollableItem` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn get_item_at_y(&self, y: u16, area: Rect) -> Option<&ScrollableItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Color` is never constructed
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum SettingValue {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Color(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingValue` 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 `description` is never read
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct SettingItem {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingItem` 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 `set_category_filter`, `get_selected_is_global`, `get_selected_key_and_scope`, `next_page`, and `previous_page` are never used
[INFO] [stdout]     --> src/frontend/tui/settings_editor.rs:126:12
[INFO] [stdout]      |
[INFO] [stdout]  109 | impl SettingsEditor {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  126 |     pub fn set_category_filter(&mut self, category: Option<String>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  298 |     pub fn get_selected_is_global(&self) -> Option<bool> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  303 |     pub fn get_selected_key_and_scope(&self) -> Option<(String, bool)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 |     pub fn next_page(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1103 |     pub fn previous_page(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border_config`, `set_border_sides`, `set_title`, and `render_with_focus` are never used
[INFO] [stdout]   --> src/frontend/tui/spacer.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Spacer {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_border_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn set_border_sides(&mut self, _sides: crate::config::BorderSides) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn set_title(&mut self, _title: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `text_color` is never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SpellColorEntry {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub text_color: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_dragging` and `drag_offset` are never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_browser.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SpellColorBrowser {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 29 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum SpellColorFormResult {
[INFO] [stdout]    |          -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 28 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpellColorFormResult` 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 `is_dragging` and `drag_offset` are never read
[INFO] [stdout]   --> src/frontend/tui/spell_color_form.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SpellColorFormWidget {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 40 |     drag_offset: (i16, i16),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_inner_size` is never used
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SpellsWindow {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn update_inner_size(&mut self, _width: u16, _height: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/tabbed_text_window.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn is_frozen_for_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 610 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_bar_color` and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll_up`, `scroll_down`, `render_with_focus`, `handle_click`, `mouse_to_text_coords`, and `extract_selection_text` are never used
[INFO] [stdout]    --> src/frontend/tui/items.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Items {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn scroll_up(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn scroll_down(&mut self, amount: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn mouse_to_text_coords(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn extract_selection_text(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regex` is never read
[INFO] [stdout]   --> src/frontend/tui/text_window.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 52 |     regex: Regex,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/container_window.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl ContainerWindow {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/frontend/tui/theme_editor.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ThemeEditorResult {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 22 |     Save(ThemeData),
[INFO] [stdout] 23 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThemeEditorResult` 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: associated function `new` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_editor.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ThemeEditor {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_theme_id` is never used
[INFO] [stdout]   --> src/frontend/tui/theme_cache.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ThemeCache {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn get_theme_id(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UIColorEditorResult` is never used
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum UIColorEditorResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entry_type` is never read
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct UIColorEntry {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub entry_type: UIColorEntryType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UIColorEntry` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/frontend/tui/uicolors_browser.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct UIColorEditor {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 44 |     asset_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 45 |     color_fg: TextArea<'static>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 46 |     color_bg: TextArea<'static>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     focused_field: usize, // 0 = fg, 1 = bg
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 48 |     popup_x: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     popup_y: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 50 |     pub dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     drag_offset_x: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     drag_offset_y: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     textarea_bg_color: Color,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse_color_static`, `handle_key`, `handle_mouse`, `render`, and `parse_color` are never used
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:57:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl UIColorEditor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  57 |     pub fn new(entry: &UIColorEntry, textarea_bg: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn parse_color_static(color_str: &str) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn handle_key(&mut self, key: KeyEvent) -> Option<UIColorEditorResult> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn handle_mouse(&mut self, mouse_col: u16, mouse_row: u16, mouse_down: bool, area: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn render(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     fn parse_color(&self, color_str: &str) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `drag_offset_x`, `drag_offset_y`, and `editor` are never read
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub struct UIColorsBrowser {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub dragging: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 428 |     drag_offset_x: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 429 |     drag_offset_y: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub editor: Option<UIColorEditor>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `open_editor`, `close_editor`, `save_editor`, and `handle_mouse` are never used
[INFO] [stdout]    --> src/frontend/tui/uicolors_browser.rs:602:12
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl UIColorsBrowser {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn open_editor(&mut self, textarea_bg: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn close_editor(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     pub fn save_editor(&mut self) -> Option<(String, String, Option<String>, Option<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 628 |     pub fn handle_mouse(&mut self, mouse_col: u16, mouse_row: u16, mouse_down: bool, area: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Form` is never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:651:5
[INFO] [stdout]     |
[INFO] [stdout] 649 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 650 |     List,
[INFO] [stdout] 651 |     Form,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IndicatorEditorMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:678:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PerfMetricGroup {
[INFO] [stdout]     |      --------------- variants in this enum
[INFO] [stdout] 678 |     FrameTiming,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 679 |     RenderPipeline,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 680 |     Network,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 681 |     Parser,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 682 |     Events,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 683 |     Memory,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 684 |     UptimeLines,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerfMetricGroup` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:714:8
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl PerformanceMetricsEditor {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 714 |     fn new(items: Vec<PerfMetricGroupState>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 842 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 877 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `change_selection` is never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:1283:8
[INFO] [stdout]      |
[INFO] [stdout] 1018 | impl BarOrderEditor {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1283 |     fn change_selection(&mut self, new_selected: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2727:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2727 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2818 |     fn open_performance_metrics_editor(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn perf_group_states(&self) -> Vec<PerfMetricGroupState> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3847 |     pub fn handle_sub_editor_reorder(&mut self, down: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4764 |     pub fn cancel(&mut self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4769 |     pub fn get_editor_geometry(&self) -> (u16, u16, u16, u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7183 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7219 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7265 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7288 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7360 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `page_up`, `page_down`, `home`, and `end` are never used
[INFO] [stdout]   --> src/frontend/tui/widget_traits.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Navigable {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn page_up(&mut self);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn page_down(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn home(&mut self) {}
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn end(&mut self) {}
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Selectable` is never used
[INFO] [stdout]   --> src/frontend/tui/widget_traits.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Selectable {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cyclable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub trait Cyclable {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `field_count` and `current_field` are never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub trait FieldNavigable {
[INFO] [stdout]     |           -------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn field_count(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn current_field(&self) -> usize;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Saveable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:127:11
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub trait Saveable {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Reorderable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub trait Reorderable {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListManageable` is never used
[INFO] [stdout]    --> src/frontend/tui/widget_traits.rs:151:11
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub trait ListManageable {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `destination`, `windows_converted`, and `windows_skipped` are never read
[INFO] [stdout]   --> src/migrate.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct MigratedFile {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 95 |     pub source: PathBuf,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 96 |     pub destination: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 97 |     pub windows_converted: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98 |     pub windows_skipped: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MigratedFile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `System` is never constructed
[INFO] [stdout]   --> src/parser.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum SpanType {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     System,      // Client/system messages (not produced by parser; used for UI echoes)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpanType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParsedSpan` is never constructed
[INFO] [stdout]   --> src/parser.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ParsedSpan {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `event_type`, `action`, and `duration` are never read
[INFO] [stdout]    --> src/parser.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     Event {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 221 |         event_type: String,  // "stun", "webbed", "prone", etc.
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 222 |         action: EventAction, // Set/Clear/Increment
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 223 |         duration: u32,       // Duration in seconds (for countdowns)
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `targets` is never read
[INFO] [stdout]    --> src/parser.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     TargetList {
[INFO] [stdout]     |     ---------- field in this variant
[INFO] [stdout] 230 |         current_target: String,  // from value attribute
[INFO] [stdout] 231 |         targets: Vec<String>,    // from content_text (comma-split)
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `target` is never read
[INFO] [stdout]    --> src/parser.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     Container {
[INFO] [stdout]     |     --------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 238 |         target: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedElement` 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 `bold` is never read
[INFO] [stdout]    --> src/parser.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 279 |     bold: bool,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ColorStyle` 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 `current_container_id` is never read
[INFO] [stdout]    --> src/parser.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 306 |     current_container_id: Option<String>, // ID of container currently receiving items
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `XmlParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `render_spike_threshold_ms` is never read
[INFO] [stdout]   --> src/performance.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PerformanceStats {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     render_spike_threshold_ms: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerformanceStats` 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 `last_event_queue_depth`, `frame_jitter_ms`, `frame_spike_count`, `event_lag_ms`, and `memory_delta_mb` are never used
[INFO] [stdout]    --> src/performance.rs:486:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl PerformanceStats {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub fn last_event_queue_depth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn frame_jitter_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn frame_spike_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     pub fn event_lag_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn memory_delta_mb(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_enabled` and `set_volume` are never used
[INFO] [stdout]   --> src/sound.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl SoundPlayer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_volume(&mut self, volume: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UtteranceStarted` and `UtteranceStopped` are never constructed
[INFO] [stdout]   --> src/tts/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TtsEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 19 |     UtteranceStarted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     UtteranceEnded,
[INFO] [stdout] 21 |     UtteranceStopped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TtsEvent` 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: variant `Critical` is never constructed
[INFO] [stdout]   --> src/tts/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Priority {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Critical = 2, // Damage warnings, death, critical alerts
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Priority` 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 `auto_play_next`, `clear_queue`, `queue_size`, `is_enabled`, and `set_enabled` are never used
[INFO] [stdout]    --> src/tts/mod.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl TtsManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn auto_play_next(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn queue_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 40s
[INFO] running `Command { std: "docker" "inspect" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74", kill_on_drop: false }`
[INFO] [stdout] 5006f75fde7c153ab630ee6b5587bff9b32f7d2554a44674f2fa5ebb2a664f74
