[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] f78d8306083de529d8cda8c9017013b1256e1572
[INFO] checking Nisugi/Profanitui against master#377656d3dd3f9c23a9c8713e163f4365a5261a84 for pr-146470-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNisugi%2FProfanitui" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-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-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Nisugi/Profanitui on toolchain 377656d3dd3f9c23a9c8713e163f4365a5261a84
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/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" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/justinpopa/crossterm.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] [stderr]       Adding openssl-src v300.5.4+3.5.4
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dyn-clonable-impl v0.9.2
[INFO] [stderr]   Downloaded rtoolbox v0.0.3
[INFO] [stderr]   Downloaded dyn-clonable v0.9.2
[INFO] [stderr]   Downloaded speech-dispatcher-sys v0.7.0
[INFO] [stderr]   Downloaded oxilangtag v0.1.5
[INFO] [stderr]   Downloaded include_dir_macros v0.7.4
[INFO] [stderr]   Downloaded speech-dispatcher v0.16.0
[INFO] [stderr]   Downloaded include_dir v0.7.4
[INFO] [stderr]   Downloaded symphonia v0.5.5
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.5
[INFO] [stderr]   Downloaded hound v3.5.1
[INFO] [stderr]   Downloaded clap v4.5.52
[INFO] [stderr]   Downloaded rpassword v7.4.0
[INFO] [stderr]   Downloaded claxon v0.4.3
[INFO] [stderr]   Downloaded symphonia-core v0.5.5
[INFO] [stderr]   Downloaded rodio v0.19.0
[INFO] [stderr]   Downloaded tts v0.26.3
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded clap_builder v4.5.52
[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-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 84e526e5046642aa040abb89773b0c608603f95ed91d7e255468f99184f7238f
[INFO] running `Command { std: "docker" "start" "-a" "84e526e5046642aa040abb89773b0c608603f95ed91d7e255468f99184f7238f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "84e526e5046642aa040abb89773b0c608603f95ed91d7e255468f99184f7238f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84e526e5046642aa040abb89773b0c608603f95ed91d7e255468f99184f7238f", kill_on_drop: false }`
[INFO] [stdout] 84e526e5046642aa040abb89773b0c608603f95ed91d7e255468f99184f7238f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71d913ec6552797cb2ed8e3a2a8725322c78bc09b99124eba64960ab70ac83be
[INFO] running `Command { std: "docker" "start" "-a" "71d913ec6552797cb2ed8e3a2a8725322c78bc09b99124eba64960ab70ac83be", kill_on_drop: false }`
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling bindgen v0.72.1
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling tts v0.26.3
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking clap_builder v4.5.52
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking oxilangtag v0.1.5
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]    Compiling openssl-src v300.5.4+3.5.4
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling dyn-clonable-impl v0.9.2
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking dyn-clonable v0.9.2
[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]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]     Checking clap v4.5.52
[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 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: 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 `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:8
[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:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     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`, `render_with_focus`, and `handle_click` 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] 181 | pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[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] 241 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     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:196:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[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:577:5
[INFO] [stdout]     |
[INFO] [stdout] 575 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 576 |     List,
[INFO] [stdout] 577 |     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: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:747:8
[INFO] [stdout]     |
[INFO] [stdout] 662 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 747 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_command_input`, `render_textarea`, `render_textarea_with_preview`, `render_checkbox`, `render_checkbox_row`, and `render_dropdown` are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2076:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2076 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5496 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5532 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5578 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5601 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5673 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `character` is never read
[INFO] [stdout]    --> src/network.rs:488:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 488 |         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:260:5
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 260 |     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:287:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     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:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | 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:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn add_players_window_with_id(ui_state: &mut UiState, name: &str, _entity_id: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]    --> src/migrate.rs:731:9
[INFO] [stdout]     |
[INFO] [stdout] 731 |     use tempfile::TempDir;
[INFO] [stdout]     |         ^^^^^^^^ use of unresolved module or unlinked crate `tempfile`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `tempfile`, use `cargo add tempfile` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CoreHighlightEngine`, `DeferredReplacement`, `HighlightResult`, and `apply_deferred_for_window`
[INFO] [stdout]   --> src/core/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     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: unused imports: `CoreHighlightEngine`, `DeferredReplacement`, `HighlightResult`, and `apply_deferred_for_window`
[INFO] [stdout]   --> src/core/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     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 `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:8
[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:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     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] 260 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     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:239:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[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:577:5
[INFO] [stdout]     |
[INFO] [stdout] 575 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 576 |     List,
[INFO] [stdout] 577 |     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: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:747:8
[INFO] [stdout]     |
[INFO] [stdout] 662 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 747 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_command_input`, `render_textarea`, `render_textarea_with_preview`, `render_checkbox`, `render_checkbox_row`, and `render_dropdown` are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2076:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2076 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5496 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5532 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5578 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5601 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5673 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bold` is never read
[INFO] [stdout]    --> src/parser.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 260 |     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:287:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     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 `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:219:12
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl LayoutMapping {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 218 |     /// Check if terminal size matches this mapping
[INFO] [stdout] 219 |     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:247:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl PaletteColor {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 247 |     pub fn new(name: &str, color: &str, category: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     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:572:12
[INFO] [stdout]     |
[INFO] [stdout] 546 | impl WindowBase {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 572 |     pub fn content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn content_cols(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_layout_for_size`, `list_visible_windows`, `load`, `get_log_path`, and `widget_state_path` are never used
[INFO] [stdout]     --> src/config.rs:2772:12
[INFO] [stdout]      |
[INFO] [stdout] 2769 | impl Config {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2772 |     pub fn find_layout_for_size(&self, width: u16, height: u16) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4477 |     pub fn list_visible_windows(layout: &crate::config::Layout) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4486 |     pub fn load() -> Result<Self> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4859 |     pub fn get_log_path(character: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4871 |     pub fn widget_state_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: associated functions `save_common_highlight` and `delete_common_highlight` are never used
[INFO] [stdout]    --> src/config/highlights.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn save_common_highlight(name: &str, pattern: &HighlightPattern) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn delete_common_highlight(name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SendMacro` is never constructed
[INFO] [stdout]    --> src/config/keybinds.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub enum KeyAction {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 136 |     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: methods `remove_window`, `resize`, `save_config`, `start_search_mode`, and `clear_search_mode` are never used
[INFO] [stdout]     --> src/core/app_core/state.rs:1264:12
[INFO] [stdout]      |
[INFO] [stdout]  139 | impl AppCore {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1264 |     pub fn remove_window(&mut self, name: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2401 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3036 |     pub fn save_config(&mut self) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3235 |     pub fn start_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3251 |     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`, `get_spells_buffer`, and `get_stream_subscribers` are never used
[INFO] [stdout]     --> src/core/messages.rs:217:12
[INFO] [stdout]      |
[INFO] [stdout]   86 | impl MessageProcessor {
[INFO] [stdout]      | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  217 |     pub fn apply_highlights_config(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2635 |     pub fn set_spells_buffer(&mut self, buffer: Vec<Vec<TextSegment>>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2640 |     pub fn get_spells_buffer(&self) -> &Vec<Vec<TextSegment>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2852 |     pub fn get_stream_subscribers(&self, stream: &str) -> &[String] {
[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] 112 |     pub estimated_lag_ms: Option<i64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     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:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct StatusInfo {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 124 |     pub standing: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 125 |     pub kneeling: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 126 |     pub sitting: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 127 |     pub prone: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     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: field `id` is never read
[INFO] [stdout]    --> src/core/state.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct ContainerData {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 190 |     /// Container ID
[INFO] [stdout] 191 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ContainerData` 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:202:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl TargetListState {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 201 |     /// Clear the current target
[INFO] [stdout] 202 |     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:258:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl ExpComponentState {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 258 |     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:306:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | impl ContainerCache {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn get(&self, id: &str) -> Option<&ContainerData> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn container_ids(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     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:376:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn update_game_time(&mut self, prompt_time: i64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn in_roundtime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn in_casttime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn roundtime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn casttime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     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: variants `Navigation` and `History` are never constructed
[INFO] [stdout]    --> src/data/ui_state.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub enum InputMode {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |     Navigation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 123 |     /// Scrolling through history
[INFO] [stdout] 124 |     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:197:9
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct DialogLabel {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 197 |     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: methods `focused_window` and `focused_window_mut` are never used
[INFO] [stdout]    --> src/data/ui_state.rs:348:12
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl UiState {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn focused_window(&self) -> Option<&WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     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:396:12
[INFO] [stdout]     |
[INFO] [stdout] 367 | impl PopupMenu {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn get_selected(&self) -> Option<&PopupMenuItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     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:114:9
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct CountdownData {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 113 |     pub end_time: i64, // Unix timestamp when timer expires
[INFO] [stdout] 114 |     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:142:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl InjuryDollData {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn get_injury(&self, body_part: &str) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     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:162:9
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct RoomContent {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 162 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 163 |     pub description: Vec<StyledLine>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 164 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 165 |     pub players: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 166 |     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:242:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl TabbedTextContent {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn mark_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn clear_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn clear_active_tab_unread(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn next_unread_tab(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_text_with_stream` is never used
[INFO] [stdout]    --> src/data/widget.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 327 | impl StyledLine {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn from_text_with_stream(text: impl Into<String>, stream: impl Into<String>) -> Self {
[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`, `history`, and `history_index` are never read
[INFO] [stdout]    --> src/data/window.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     CommandInput {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 109 |         text: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 110 |         cursor: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 111 |         history: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 112 |         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: variant `Experience` is never constructed
[INFO] [stdout]    --> src/data/window.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum WindowContent {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 137 |     Experience,
[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:152:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl WindowState {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 152 |     pub fn new_text(name: impl Into<String>, max_lines: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     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 `CTRL`, `SHIFT`, `ALT`, `is_empty`, `contains_ctrl`, and `contains_alt` are never used
[INFO] [stdout]    --> src/frontend/common/input.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub const CTRL: Self = KeyModifiers {
[INFO] [stdout]     |               ^^^^
[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: fields `is_dragging`, `drag_offset_x`, and `drag_offset_y` are never read
[INFO] [stdout]   --> src/frontend/tui/color_form.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ColorForm {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 45 |     pub drag_offset_x: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 46 |     pub drag_offset_y: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_mouse` and `get_original_name` are never used
[INFO] [stdout]    --> src/frontend/tui/color_form.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl ColorForm {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn handle_mouse(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 613 |     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:632:11
[INFO] [stdout]     |
[INFO] [stdout] 632 |     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] 632 -     Error(String),
[INFO] [stdout] 632 +     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:630:5
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub enum FormAction {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 630 |     Delete,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 631 |     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: fields `is_dragging`, `drag_offset_x`, and `drag_offset_y` are never read
[INFO] [stdout]   --> src/frontend/tui/color_palette_browser.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ColorPaletteBrowser {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 27 |     pub drag_offset_x: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub drag_offset_y: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_filter`, `get_colors`, `page_up`, `page_down`, `toggle_favorite`, and `handle_mouse` are never used
[INFO] [stdout]    --> src/frontend/tui/color_palette_browser.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl ColorPaletteBrowser {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn set_filter(&mut self, filter: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn get_colors(&self) -> &Vec<PaletteColor> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn page_up(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn page_down(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn toggle_favorite(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn handle_mouse(
[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 `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:8
[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:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct HighlightEntry {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 19 |     pub name: String,
[INFO] [stdout] 20 |     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: method `set_category_filter` is never used
[INFO] [stdout]   --> src/frontend/tui/highlight_browser.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl HighlightBrowser {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     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:35:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum FormResult {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     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 function `with_pattern` is never used
[INFO] [stdout]    --> src/frontend/tui/highlight_form.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl HighlightFormWidget {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn with_pattern(name: String, pattern: HighlightPattern) -> Self {
[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: fields `num_sections`, `is_dragging`, `drag_offset_x`, and `drag_offset_y` are never read
[INFO] [stdout]   --> src/frontend/tui/keybind_browser.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct KeybindBrowser {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     num_sections: usize, // Number of section headers (for scroll calculation)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 35 |     pub drag_offset_x: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub drag_offset_y: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `handle_mouse` is never used
[INFO] [stdout]    --> src/frontend/tui/keybind_browser.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl KeybindBrowser {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn handle_mouse(
[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:27:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum KeybindFormResult {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     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: fields `is_dragging`, `drag_offset_x`, and `drag_offset_y` are never read
[INFO] [stdout]   --> src/frontend/tui/keybind_form.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct KeybindFormWidget {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 66 |     pub drag_offset_x: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 67 |     pub drag_offset_y: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_mouse` and `get_current_section` are never used
[INFO] [stdout]    --> src/frontend/tui/keybind_form.rs:716:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl KeybindFormWidget {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 716 |     pub fn handle_mouse(&mut self, col: u16, row: u16, pressed: bool, terminal_area: Rect) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 774 |     pub fn get_current_section(&self) -> ActionSection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_hidewindow_picker` is never used
[INFO] [stdout]    --> src/frontend/tui/menu_builders.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | 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`, `render_with_focus`, and `handle_click` 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] 181 | pub fn handle_click(&self, y: u16, area: Rect) -> Option<LinkData> {
[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:89:12
[INFO] [stdout]    |
[INFO] [stdout]  3 | impl TuiFrontend {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     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:21:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum SettingValue {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     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: method `parse_from_string` is never used
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SettingValue {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn parse_from_string(&self, s: &str) -> Option<SettingValue> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key`, `description`, and `editable` are never read
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct SettingItem {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     pub category: String,
[INFO] [stdout] 69 |     pub key: String,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 73 |     pub editable: bool,
[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: fields `is_dragging`, `drag_offset_x`, and `drag_offset_y` are never read
[INFO] [stdout]   --> src/frontend/tui/settings_editor.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct SettingsEditor {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub is_dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 89 |     drag_offset_x: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 90 |     drag_offset_y: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/tui/settings_editor.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl SettingsEditor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_category_filter(&mut self, category: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn start_editing(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn stop_editing(&mut self, save: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn is_editing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn cycle_enum(&mut self, forward: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn handle_input(&mut self, key: KeyEvent) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn handle_mouse(
[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] 241 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 849 |     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:196:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Targets {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_generation(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn set_bar_color(&mut self, _color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[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:577:5
[INFO] [stdout]     |
[INFO] [stdout] 575 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 576 |     List,
[INFO] [stdout] 577 |     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: methods `start_add` and `start_edit` are never used
[INFO] [stdout]    --> src/frontend/tui/window_editor.rs:747:8
[INFO] [stdout]     |
[INFO] [stdout] 662 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 747 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn start_edit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/frontend/tui/window_editor.rs:2076:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2076 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3015 |     pub fn handle_sub_editor_reorder(&mut self, down: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3740 |     pub fn cancel(&mut self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3745 |     pub fn get_editor_geometry(&self) -> (u16, u16, u16, u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5496 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5532 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5578 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5601 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5673 |     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:488:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 488 |         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 `id` and `value` are never read
[INFO] [stdout]    --> src/parser.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Label {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 124 |         id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 125 |         value: 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 `id` is never read
[INFO] [stdout]    --> src/parser.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ClearDialogData {
[INFO] [stdout]     |     --------------- field in this variant
[INFO] [stdout] 142 |         id: 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: fields `event_type`, `action`, and `duration` are never read
[INFO] [stdout]    --> src/parser.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     Event {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 209 |         event_type: String,  // "stun", "webbed", "prone", etc.
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 210 |         action: EventAction, // Set/Clear/Increment
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 211 |         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 `url` is never read
[INFO] [stdout]    --> src/parser.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |     LaunchURL {
[INFO] [stdout]     |     --------- field in this variant
[INFO] [stdout] 214 |         url: String, // URL path to append to https://www.play.net
[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: fields `targets` and `target_ids` are never read
[INFO] [stdout]    --> src/parser.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TargetList {
[INFO] [stdout]     |     ---------- fields in this variant
[INFO] [stdout] 218 |         current_target: String,  // from value attribute
[INFO] [stdout] 219 |         targets: Vec<String>,    // from content_text (comma-split)
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 220 |         target_ids: Vec<String>, // from content_value (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:226:9
[INFO] [stdout]     |
[INFO] [stdout] 223 |     Container {
[INFO] [stdout]     |     --------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 226 |         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:260:5
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 260 |     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:287:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct XmlParser {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     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:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | 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] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vellum-fe` (bin "vellum-fe" test) due to 1 previous error; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "71d913ec6552797cb2ed8e3a2a8725322c78bc09b99124eba64960ab70ac83be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71d913ec6552797cb2ed8e3a2a8725322c78bc09b99124eba64960ab70ac83be", kill_on_drop: false }`
[INFO] [stdout] 71d913ec6552797cb2ed8e3a2a8725322c78bc09b99124eba64960ab70ac83be
