[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] 79b4bbd52aaabd11b13bd69df766bfa177488e8a
[INFO] checking Nisugi/Profanitui against master#377656d3dd3f9c23a9c8713e163f4365a5261a84 for pr-146470-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNisugi%2FProfanitui" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Nisugi/Profanitui
[INFO] finished tweaking git repo https://github.com/Nisugi/Profanitui
[INFO] tweaked toml for git repo https://github.com/Nisugi/Profanitui written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Nisugi/Profanitui on toolchain 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]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded speech-dispatcher-sys v0.7.0
[INFO] [stderr]   Downloaded dyn-clonable v0.9.2
[INFO] [stderr]   Downloaded dyn-clonable-impl v0.9.2
[INFO] [stderr]   Downloaded symphonia v0.5.5
[INFO] [stderr]   Downloaded oxilangtag v0.1.5
[INFO] [stderr]   Downloaded speech-dispatcher v0.16.0
[INFO] [stderr]   Downloaded fax_derive v0.2.0
[INFO] [stderr]   Downloaded rodio v0.19.0
[INFO] [stderr]   Downloaded fax v0.2.6
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.5
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.2
[INFO] [stderr]   Downloaded hound v3.5.1
[INFO] [stderr]   Downloaded zune-jpeg v0.4.21
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.2
[INFO] [stderr]   Downloaded symphonia-core v0.5.5
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]   Downloaded tts v0.26.3
[INFO] [stderr]   Downloaded moxcms v0.7.9
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded image v0.25.9
[INFO] [stderr]   Downloaded objc2 v0.6.3
[INFO] [stderr]   Downloaded objc2-foundation v0.3.2
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.2
[INFO] [stderr]   Downloaded tiff v0.10.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4b8332ab5247cc06764cf4b1fa9a693535ef52843ed09379b5050cd7ba8fc2d7
[INFO] running `Command { std: "docker" "start" "-a" "4b8332ab5247cc06764cf4b1fa9a693535ef52843ed09379b5050cd7ba8fc2d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4b8332ab5247cc06764cf4b1fa9a693535ef52843ed09379b5050cd7ba8fc2d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b8332ab5247cc06764cf4b1fa9a693535ef52843ed09379b5050cd7ba8fc2d7", kill_on_drop: false }`
[INFO] [stdout] 4b8332ab5247cc06764cf4b1fa9a693535ef52843ed09379b5050cd7ba8fc2d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3d14bb722d16fabf5dade050bd19a030ba73ef6672b857afb705fa03aca9ddd5
[INFO] running `Command { std: "docker" "start" "-a" "3d14bb722d16fabf5dade050bd19a030ba73ef6672b857afb705fa03aca9ddd5", kill_on_drop: false }`
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling bindgen v0.72.1
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]    Compiling tts v0.26.3
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking winnow v0.7.13
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking oxilangtag v0.1.5
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking sysinfo v0.30.13
[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 dyn-clonable-impl v0.9.2
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking dyn-clonable v0.9.2
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking openssl v0.10.75
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0 (https://github.com/justinpopa/crossterm.git?branch=dev#81f85a43)
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking clap v4.5.52
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking tui-textarea v0.7.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking arboard v3.6.1
[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 `popup_menu`, `submenu`, and `menu_categories` are never read
[INFO] [stdout]   --> src/frontend/tui/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct TuiFrontend {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     popup_menu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 78 |     /// Active submenu (if any)
[INFO] [stdout] 79 |     submenu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 80 |     /// Cached submenu items for the main menu
[INFO] [stdout] 81 |     menu_categories: HashMap<String, Vec<popup_menu::MenuItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `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:70:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     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:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | 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:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | 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:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | 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: field `selection_start` is never read
[INFO] [stdout]   --> src/frontend/tui/command_input.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CommandInput {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     selection_start: Option<usize>,     // Start of selection (None if no selection)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `select_all`, `get_selected_text`, and `clear_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     pub fn select_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 702 |     pub fn get_selected_text(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn clear_selection(&mut self) {
[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:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `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 `scroll_to_bottom` and `get_lines` are never used
[INFO] [stdout]    --> src/frontend/tui/inventory_window.rs:380:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl InventoryWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     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_offset`, `set_scroll_offset`, `scroll_up`, and `scroll_down` are never used
[INFO] [stdout]   --> src/frontend/tui/perception.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerceptionWindow {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn scroll_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn scroll_down(&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:180:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command` is never read
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     pub text: String,
[INFO] [stdout] 18 |     pub command: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` 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 associated items are never used
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl PopupMenu {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new(items: Vec<MenuItem>, position: (u16, u16)) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn select_next(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn select_previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn get_selected_command(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_selected_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_position(&self) -> (u16, u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_items(&self) -> &[MenuItem] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn check_click(&self, click_x: u16, click_y: u16, menu_rect: Rect) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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:388:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 18 |     pub id: String,
[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: methods `toggle_alternate_text`, `set_visible_count`, `add_or_update_item`, `add_or_update_item_with_suffix`, `remove_item`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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: field `inner_width` is never read
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SpellsWindow {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     inner_width: usize,
[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:150:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl SpellsWindow {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn update_inner_size(&mut self, width: u16, height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_lines(&self) -> &[Vec<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:112:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 833 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Targets {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 192 |     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:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 50 |     regex: Regex,
[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:576:5
[INFO] [stdout]     |
[INFO] [stdout] 574 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 575 |     List,
[INFO] [stdout] 576 |     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:746:8
[INFO] [stdout]     |
[INFO] [stdout] 661 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 746 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     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:2065:8
[INFO] [stdout]      |
[INFO] [stdout] 1004 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2065 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5485 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5521 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5567 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5590 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5662 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `character` is never read
[INFO] [stdout]    --> src/network.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 274 |         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:190:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 190 |     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: fields `popup_menu`, `submenu`, and `menu_categories` are never read
[INFO] [stdout]   --> src/frontend/tui/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct TuiFrontend {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     popup_menu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 78 |     /// Active submenu (if any)
[INFO] [stdout] 79 |     submenu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 80 |     /// Cached submenu items for the main menu
[INFO] [stdout] 81 |     menu_categories: HashMap<String, Vec<popup_menu::MenuItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `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:70:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     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:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | 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:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | 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:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | 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: field `selection_start` is never read
[INFO] [stdout]   --> src/frontend/tui/command_input.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CommandInput {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     selection_start: Option<usize>,     // Start of selection (None if no selection)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `select_all`, `get_selected_text`, and `clear_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     pub fn select_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 702 |     pub fn get_selected_text(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn clear_selection(&mut self) {
[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:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `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 `scroll_to_bottom` and `get_lines` are never used
[INFO] [stdout]    --> src/frontend/tui/inventory_window.rs:380:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl InventoryWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     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: method `set_scroll_offset` is never used
[INFO] [stdout]   --> src/frontend/tui/perception.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerceptionWindow {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command` is never read
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     pub text: String,
[INFO] [stdout] 18 |     pub command: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` 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 associated items are never used
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl PopupMenu {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new(items: Vec<MenuItem>, position: (u16, u16)) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn select_next(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn select_previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn get_selected_command(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_selected_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_position(&self) -> (u16, u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_items(&self) -> &[MenuItem] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn check_click(&self, click_x: u16, click_y: u16, menu_rect: Rect) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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:388:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn set_all_component_visibility(&mut self, visibility: HashMap<String, bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 18 |     pub id: String,
[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: methods `toggle_alternate_text`, `set_visible_count`, `add_or_update_item`, `add_or_update_item_with_suffix`, `remove_item`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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: field `inner_width` is never read
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SpellsWindow {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     inner_width: usize,
[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:150:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl SpellsWindow {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn update_inner_size(&mut self, width: u16, height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_lines(&self) -> &[Vec<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:112:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 833 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Targets {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 192 |     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:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 50 |     regex: Regex,
[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:576:5
[INFO] [stdout]     |
[INFO] [stdout] 574 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 575 |     List,
[INFO] [stdout] 576 |     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:746:8
[INFO] [stdout]     |
[INFO] [stdout] 661 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 746 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     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:2065:8
[INFO] [stdout]      |
[INFO] [stdout] 1004 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2065 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5485 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5521 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5567 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5590 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5662 |     fn render_dropdown(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bold` is never read
[INFO] [stdout]    --> src/parser.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 190 |     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 `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:144:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl LayoutMapping {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 143 |     /// Check if terminal size matches this mapping
[INFO] [stdout] 144 |     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:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl PaletteColor {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 172 |     pub fn new(name: &str, color: &str, category: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     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:485:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl WindowBase {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     pub fn content_cols(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_layout_for_size`, `available_window_templates`, `list_visible_windows`, `load`, `get_log_path`, and `widget_state_path` are never used
[INFO] [stdout]     --> src/config.rs:2295:12
[INFO] [stdout]      |
[INFO] [stdout] 2292 | impl Config {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2295 |     pub fn find_layout_for_size(&self, width: u16, height: u16) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3625 |     pub fn available_window_templates() -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3908 |     pub fn list_visible_windows(layout: &crate::config::Layout) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3917 |     pub fn load() -> Result<Self> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4252 |     pub fn get_log_path(character: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4264 |     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:168:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn save_common_highlight(name: &str, pattern: &HighlightPattern) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     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:137:5
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub enum KeyAction {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 137 |     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:924:12
[INFO] [stdout]      |
[INFO] [stdout]  139 | impl AppCore {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  924 |     pub fn remove_window(&mut self, name: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1821 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2426 |     pub fn save_config(&mut self) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2588 |     pub fn start_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2604 |     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:1090:12
[INFO] [stdout]      |
[INFO] [stdout]    8 | impl AppCore {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1090 |     pub fn load_layout_with_size(&mut self, name: &str, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_priority_window` is never used
[INFO] [stdout]   --> src/core/input_router.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn has_priority_window(mode: &InputMode) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_use_menu_keybinds` is never used
[INFO] [stdout]   --> src/core/input_router.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn should_use_menu_keybinds(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: constant `LAG_CHECK_INTERVAL_SECS` is never used
[INFO] [stdout]  --> src/core/state.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | 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:18:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct GameState {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub character_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub room_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub room_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub exits: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub active_streams: HashMap<String, bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub inventory: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub active_effects: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub estimated_lag_ms: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     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:81:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct StatusInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 81 |     pub standing: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 82 |     pub kneeling: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 83 |     pub sitting: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 84 |     pub prone: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     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: methods `update_game_time`, `in_roundtime`, `in_casttime`, `roundtime_remaining`, `casttime_remaining`, and `lag_ms` are never used
[INFO] [stdout]    --> src/core/state.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn update_game_time(&mut self, prompt_time: i64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn in_roundtime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn in_casttime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn roundtime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn casttime_remaining(&self) -> i64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     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:41:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct UiState {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     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:98:5
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub enum InputMode {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     Navigation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]  99 |     /// Scrolling through history
[INFO] [stdout] 100 |     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: methods `get_window_by_type`, `focused_window`, and `focused_window_mut` are never used
[INFO] [stdout]    --> src/data/ui_state.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl UiState {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn get_window_by_type(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn focused_window(&self) -> Option<&WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     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:322:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl PopupMenu {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn get_selected(&self) -> Option<&PopupMenuItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     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:81:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct CountdownData {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 80 |     pub end_time: i64, // Unix timestamp when timer expires
[INFO] [stdout] 81 |     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:109:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl InjuryDollData {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn get_injury(&self, body_part: &str) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     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:129:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct RoomContent {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 129 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 130 |     pub description: Vec<StyledLine>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 131 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 132 |     pub players: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 133 |     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:207:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl TabbedTextContent {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn mark_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn clear_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_active_tab_unread(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn next_unread_tab(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_text` and `from_text_with_stream` are never used
[INFO] [stdout]    --> src/data/widget.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl StyledLine {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] 293 |     pub fn from_text(text: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     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` and `content_align` 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]    |
[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:103:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     CommandInput {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 103 |         text: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 104 |         cursor: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 105 |         history: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 106 |         history_index: Option<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WindowContent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_text` and `new_command_input` are never used
[INFO] [stdout]    --> src/data/window.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl WindowState {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 142 |     pub fn new_text(name: impl Into<String>, max_lines: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     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: 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: fields `popup_menu`, `submenu`, and `menu_categories` are never read
[INFO] [stdout]   --> src/frontend/tui/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct TuiFrontend {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     popup_menu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 78 |     /// Active submenu (if any)
[INFO] [stdout] 79 |     submenu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 80 |     /// Cached submenu items for the main menu
[INFO] [stdout] 81 |     menu_categories: HashMap<String, Vec<popup_menu::MenuItem>>,
[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:70:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     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:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | 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:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | 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:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | 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: field `selection_start` is never read
[INFO] [stdout]   --> src/frontend/tui/command_input.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CommandInput {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     selection_start: Option<usize>,     // Start of selection (None if no selection)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `select_all`, `get_selected_text`, and `clear_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     pub fn select_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 702 |     pub fn get_selected_text(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn clear_selection(&mut self) {
[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:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pattern` is never read
[INFO] [stdout]   --> src/frontend/tui/highlight_browser.rs: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:253:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl HighlightFormWidget {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn with_pattern(name: String, pattern: HighlightPattern) -> Self {
[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 `scroll_to_bottom` and `get_lines` are never used
[INFO] [stdout]    --> src/frontend/tui/inventory_window.rs:380:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl InventoryWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     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: 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:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | 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:73:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerceptionWindow {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn scroll_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn scroll_down(&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:180:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command` is never read
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     pub text: String,
[INFO] [stdout] 18 |     pub command: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` 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 associated items are never used
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl PopupMenu {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new(items: Vec<MenuItem>, position: (u16, u16)) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn select_next(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn select_previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn get_selected_command(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_selected_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_position(&self) -> (u16, u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_items(&self) -> &[MenuItem] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn check_click(&self, click_x: u16, click_y: u16, menu_rect: Rect) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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:388:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     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: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 18 |     pub id: String,
[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: methods `toggle_alternate_text`, `set_visible_count`, `add_or_update_item`, `add_or_update_item_with_suffix`, `remove_item`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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: field `inner_width` is never read
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SpellsWindow {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     inner_width: usize,
[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:150:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl SpellsWindow {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn update_inner_size(&mut self, width: u16, height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_lines(&self) -> &[Vec<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:112:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 833 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Targets {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 192 |     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:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 50 |     regex: Regex,
[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:576:5
[INFO] [stdout]     |
[INFO] [stdout] 574 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 575 |     List,
[INFO] [stdout] 576 |     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:746:8
[INFO] [stdout]     |
[INFO] [stdout] 661 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 746 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     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:2065:8
[INFO] [stdout]      |
[INFO] [stdout] 1004 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2065 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3004 |     pub fn handle_sub_editor_reorder(&mut self, down: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3729 |     pub fn cancel(&mut self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3734 |     pub fn get_editor_geometry(&self) -> (u16, u16, u16, u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5485 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5521 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5567 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5590 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5662 |     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:94:9
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct MigratedFile {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 94 |     pub source: PathBuf,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 95 |     pub destination: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 96 |     pub windows_converted: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 97 |     pub windows_skipped: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `character` is never read
[INFO] [stdout]    --> src/network.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |     pub struct LaunchTicket {
[INFO] [stdout]     |                ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 274 |         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: field `stream` is never read
[INFO] [stdout]   --> src/parser.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     Text {
[INFO] [stdout]    |     ---- field in this variant
[INFO] [stdout] 85 |         content: String,
[INFO] [stdout] 86 |         stream: 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 `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:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |     Event {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 174 |         event_type: String,  // "stun", "webbed", "prone", etc.
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 175 |         action: EventAction, // Set/Clear/Increment
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 176 |         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:179:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     LaunchURL {
[INFO] [stdout]     |     --------- field in this variant
[INFO] [stdout] 179 |         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: field `bold` is never read
[INFO] [stdout]    --> src/parser.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 190 |     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 `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:74:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl SoundPlayer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_volume(&mut self, volume: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UtteranceStarted` and `UtteranceStopped` are never constructed
[INFO] [stdout]   --> src/tts/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TtsEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 19 |     UtteranceStarted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     UtteranceEnded,
[INFO] [stdout] 21 |     UtteranceStopped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TtsEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Critical` is never constructed
[INFO] [stdout]   --> src/tts/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Priority {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Critical = 2, // Damage warnings, death, critical alerts
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Priority` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `auto_play_next`, `clear_queue`, `queue_size`, `is_enabled`, and `set_enabled` are never used
[INFO] [stdout]    --> src/tts/mod.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl TtsManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn auto_play_next(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn queue_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]    --> src/config.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl LayoutMapping {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 143 |     /// Check if terminal size matches this mapping
[INFO] [stdout] 144 |     pub fn matches(&self, width: u16, height: u16) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_slot` are never used
[INFO] [stdout]    --> src/config.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl PaletteColor {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 172 |     pub fn new(name: &str, color: &str, category: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     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:485:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl WindowBase {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn content_rows(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     pub fn content_cols(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_layout_for_size`, `available_window_templates`, `list_visible_windows`, `load`, `get_log_path`, and `widget_state_path` are never used
[INFO] [stdout]     --> src/config.rs:2295:12
[INFO] [stdout]      |
[INFO] [stdout] 2292 | impl Config {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2295 |     pub fn find_layout_for_size(&self, width: u16, height: u16) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3625 |     pub fn available_window_templates() -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3908 |     pub fn list_visible_windows(layout: &crate::config::Layout) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3917 |     pub fn load() -> Result<Self> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4252 |     pub fn get_log_path(character: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4264 |     pub fn widget_state_path(character: Option<&str>) -> Result<PathBuf> {
[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:168:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn save_common_highlight(name: &str, pattern: &HighlightPattern) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn delete_common_highlight(name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/core/app_core/state.rs:51:9
[INFO] [stdout]     |
[INFO] [stdout]  24 | pub struct AppCore {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub current_stream: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub discard_current_stream: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub stream_buffer: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub server_time_offset: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub show_perf_stats: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub chunk_has_main_text: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub chunk_has_silent_updates: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_window`, `resize`, `save_config`, `start_search_mode`, and `clear_search_mode` are never used
[INFO] [stdout]     --> src/core/app_core/state.rs:924:12
[INFO] [stdout]      |
[INFO] [stdout]  139 | impl AppCore {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  924 |     pub fn remove_window(&mut self, name: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1821 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2426 |     pub fn save_config(&mut self) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2588 |     pub fn start_search_mode(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2604 |     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:1090:12
[INFO] [stdout]      |
[INFO] [stdout]    8 | impl AppCore {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1090 |     pub fn load_layout_with_size(&mut self, name: &str, width: u16, height: u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_use_menu_keybinds` is never used
[INFO] [stdout]   --> src/core/input_router.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn should_use_menu_keybinds(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 `get_window_by_type` and `focused_window_mut` are never used
[INFO] [stdout]    --> src/data/ui_state.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl UiState {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn get_window_by_type(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn focused_window_mut(&mut self) -> Option<&mut WindowState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/data/widget.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct CountdownData {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 80 |     pub end_time: i64, // Unix timestamp when timer expires
[INFO] [stdout] 81 |     pub label: String, // Display label
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CountdownData` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `description`, `exits`, `players`, and `objects` are never read
[INFO] [stdout]    --> src/data/widget.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct RoomContent {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 129 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 130 |     pub description: Vec<StyledLine>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 131 |     pub exits: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 132 |     pub players: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 133 |     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:207:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl TabbedTextContent {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn mark_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn clear_tab_unread(&mut self, tab_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_active_tab_unread(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     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:308:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | impl StyledLine {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn from_text_with_stream(text: impl Into<String>, stream: 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: multiple methods are never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:52:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | pub trait TextInput {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn set_text(&mut self, text: String);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn delete_current_line(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     fn cursor_position(&self) -> (u16, u16);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn cancel_selection(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn has_selection(&self) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn yank_text(&self) -> String;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn clear(&mut self);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cut` is never used
[INFO] [stdout]    --> src/frontend/common/text_input.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait TextEditor: TextInput {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn cut(&mut self) -> String {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cursor_pos` is never read
[INFO] [stdout]    --> src/frontend/common/text_input.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |     struct MockTextInput {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 350 |         text: String,
[INFO] [stdout] 351 |         cursor_pos: (u16, u16),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_background_color` is never read
[INFO] [stdout]   --> src/frontend/common/widget_data.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct ProgressBarData {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub window_background_color: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProgressBarData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `border_sides` is never read
[INFO] [stdout]    --> src/frontend/common/widget_data.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct HandData {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub border_sides: crate::config::BorderSides,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HandData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `paste` is never used
[INFO] [stdout]   --> src/frontend/events.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl FrontendEvent {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn paste(text: String) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `popup_menu`, `submenu`, and `menu_categories` are never read
[INFO] [stdout]   --> src/frontend/tui/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct TuiFrontend {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     popup_menu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 78 |     /// Active submenu (if any)
[INFO] [stdout] 79 |     submenu: Option<popup_menu::PopupMenu>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 80 |     /// Cached submenu items for the main menu
[INFO] [stdout] 81 |     menu_categories: HashMap<String, Vec<popup_menu::MenuItem>>,
[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:70:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ActiveEffects {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn remove_effect(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn toggle_display(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn get_category(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_bar_color(&mut self, color: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     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:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | 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:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | 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:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | 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: field `selection_start` is never read
[INFO] [stdout]   --> src/frontend/tui/command_input.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CommandInput {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     selection_start: Option<usize>,     // Start of selection (None if no selection)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_min_command_length`, `get_last_command`, `get_second_last_command`, `select_all`, `get_selected_text`, and `clear_selection` are never used
[INFO] [stdout]    --> src/frontend/tui/command_input.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl CommandInput {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn set_min_command_length(&mut self, min_length: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn get_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn get_second_last_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     pub fn select_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 702 |     pub fn get_selected_text(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn clear_selection(&mut self) {
[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:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pattern` is never read
[INFO] [stdout]   --> src/frontend/tui/highlight_browser.rs: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:253:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl HighlightFormWidget {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn with_pattern(name: String, pattern: HighlightPattern) -> Self {
[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 `scroll_to_bottom` and `get_lines` are never used
[INFO] [stdout]    --> src/frontend/tui/inventory_window.rs:380:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl InventoryWindow {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     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: 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:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn build_hidewindow_picker(app_core: &AppCore) -> Vec<PopupMenuItem> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_scroll_offset` is never used
[INFO] [stdout]   --> src/frontend/tui/perception.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerceptionWindow {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/players.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Players {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, focused: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command` is never read
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     pub text: String,
[INFO] [stdout] 18 |     pub command: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` 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 associated items are never used
[INFO] [stdout]   --> src/frontend/tui/popup_menu.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl PopupMenu {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new(items: Vec<MenuItem>, position: (u16, u16)) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn select_next(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn select_previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn get_selected_command(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn get_selected_index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_position(&self) -> (u16, u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_items(&self) -> &[MenuItem] {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn check_click(&self, click_x: u16, click_y: u16, menu_rect: Rect) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/progress_bar.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ProgressBar {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn render_with_focus(&self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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:388:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl RoomWindow {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn scroll_to_bottom(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn get_component_visibility(&self) -> HashMap<String, bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     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: field `id` is never read
[INFO] [stdout]   --> src/frontend/tui/scrollable_container.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ScrollableItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 18 |     pub id: String,
[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: methods `toggle_alternate_text`, `set_visible_count`, `add_or_update_item`, `add_or_update_item_with_suffix`, `remove_item`, and `render_with_focus` are never used
[INFO] [stdout]    --> src/frontend/tui/scrollable_container.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ScrollableContainer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn toggle_alternate_text(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_visible_count(&mut self, count: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn add_or_update_item(&mut self, id: String, text: String, value: u32, max: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_or_update_item_with_suffix(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn remove_item(&mut self, id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn render_with_focus(&mut self, area: Rect, buf: &mut Buffer, _focused: bool) {
[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: field `inner_width` is never read
[INFO] [stdout]   --> src/frontend/tui/spells_window.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SpellsWindow {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     inner_width: usize,
[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:150:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl SpellsWindow {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn find_link_by_word(&self, word: &str) -> Option<LinkData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn update_inner_size(&mut self, width: u16, height: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_lines(&self) -> &[Vec<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:112:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl TabbedTextWindow {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_border_config(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_tab_bar_position(mut self, position: TabBarPosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_title_position(mut self, position: TitlePosition) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_tab_colors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_unread_prefix(mut self, prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn remove_tab(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn rename_tab(&mut self, old_name: &str, new_name: String) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn switch_to_tab_by_name(&mut self, name: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn get_tab_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn has_unread_tabs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn reorder_tabs(&mut self, new_order: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn add_text_to_stream(&mut self, stream: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn finish_line_for_stream(&mut self, stream: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn add_text_to_tab(&mut self, tab_name: &str, styled: super::text_window::StyledText) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn finish_line_for_tab(&mut self, tab_name: &str, width: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn get_all_streams(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn clear_stream(&mut self, stream: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     pub fn start_search(&mut self, pattern: &str) -> Result<usize, regex::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn clear_search(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     pub fn next_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn prev_match(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn search_info(&self) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 833 |     pub fn render(&mut self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_with_focus` is never used
[INFO] [stdout]    --> src/frontend/tui/targets.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl Targets {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 192 |     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:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct SearchState {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 50 |     regex: Regex,
[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:576:5
[INFO] [stdout]     |
[INFO] [stdout] 574 | enum IndicatorEditorMode {
[INFO] [stdout]     |      ------------------- variant in this enum
[INFO] [stdout] 575 |     List,
[INFO] [stdout] 576 |     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:746:8
[INFO] [stdout]     |
[INFO] [stdout] 661 | impl IndicatorEditor {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 746 |     fn start_add(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     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:2065:8
[INFO] [stdout]      |
[INFO] [stdout] 1004 | impl WindowEditor {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2065 |     fn is_command_input(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3004 |     pub fn handle_sub_editor_reorder(&mut self, down: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3729 |     pub fn cancel(&mut self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3734 |     pub fn get_editor_geometry(&self) -> (u16, u16, u16, u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5485 |     fn render_textarea(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5521 |     fn render_textarea_with_preview(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5567 |     fn render_checkbox(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5590 |     fn render_checkbox_row(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5662 |     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:94:9
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct MigratedFile {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 94 |     pub source: PathBuf,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 95 |     pub destination: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 96 |     pub windows_converted: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 97 |     pub windows_skipped: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[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: field `stream` is never read
[INFO] [stdout]   --> src/parser.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     Text {
[INFO] [stdout]    |     ---- field in this variant
[INFO] [stdout] 85 |         content: String,
[INFO] [stdout] 86 |         stream: 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:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |     Event {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 174 |         event_type: String,  // "stun", "webbed", "prone", etc.
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 175 |         action: EventAction, // Set/Clear/Increment
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 176 |         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 `bold` is never read
[INFO] [stdout]    --> src/parser.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub(crate) struct ColorStyle {
[INFO] [stdout]     |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 190 |     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 `render_spike_threshold_ms` is never read
[INFO] [stdout]   --> src/performance.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PerformanceStats {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     render_spike_threshold_ms: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerformanceStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `last_event_queue_depth`, `frame_jitter_ms`, `frame_spike_count`, `event_lag_ms`, and `memory_delta_mb` are never used
[INFO] [stdout]    --> src/performance.rs:486:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl PerformanceStats {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub fn last_event_queue_depth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn frame_jitter_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn frame_spike_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     pub fn event_lag_ms(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn memory_delta_mb(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_enabled` and `set_volume` are never used
[INFO] [stdout]   --> src/sound.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl SoundPlayer {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_volume(&mut self, volume: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UtteranceStarted` and `UtteranceStopped` are never constructed
[INFO] [stdout]   --> src/tts/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TtsEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 19 |     UtteranceStarted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     UtteranceEnded,
[INFO] [stdout] 21 |     UtteranceStopped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TtsEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Critical` is never constructed
[INFO] [stdout]   --> src/tts/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Priority {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Critical = 2, // Damage warnings, death, critical alerts
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Priority` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `auto_play_next`, `clear_queue`, `queue_size`, `is_enabled`, and `set_enabled` are never used
[INFO] [stdout]    --> src/tts/mod.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl TtsManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn auto_play_next(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn queue_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn set_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] running `Command { std: "docker" "inspect" "3d14bb722d16fabf5dade050bd19a030ba73ef6672b857afb705fa03aca9ddd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d14bb722d16fabf5dade050bd19a030ba73ef6672b857afb705fa03aca9ddd5", kill_on_drop: false }`
[INFO] [stdout] 3d14bb722d16fabf5dade050bd19a030ba73ef6672b857afb705fa03aca9ddd5
