[INFO] cloning repository https://github.com/coldwoong-moon/agterm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coldwoong-moon/agterm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoldwoong-moon%2Fagterm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoldwoong-moon%2Fagterm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 710dbf92254b4f10be603351ca31287241caae81
[INFO] checking coldwoong-moon/agterm against try#53f0b05ecbcf011a1f77f1c627304e87ebd05801 for pr-154492
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcoldwoong-moon%2Fagterm" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/coldwoong-moon/agterm
[INFO] finished tweaking git repo https://github.com/coldwoong-moon/agterm
[INFO] tweaked toml for git repo https://github.com/coldwoong-moon/agterm written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/coldwoong-moon/agterm on toolchain 53f0b05ecbcf011a1f77f1c627304e87ebd05801
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/coldwoong-moon/agterm 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" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7d566b1cfb92de2b8c547ea9a77dbf5dc170dc5cc850f2ee573d84a859a89df5
[INFO] running `Command { std: "docker" "start" "-a" "7d566b1cfb92de2b8c547ea9a77dbf5dc170dc5cc850f2ee573d84a859a89df5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7d566b1cfb92de2b8c547ea9a77dbf5dc170dc5cc850f2ee573d84a859a89df5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d566b1cfb92de2b8c547ea9a77dbf5dc170dc5cc850f2ee573d84a859a89df5", kill_on_drop: false }`
[INFO] [stdout] 7d566b1cfb92de2b8c547ea9a77dbf5dc170dc5cc850f2ee573d84a859a89df5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 183c19ef7ad0b52de744754737b621a52d21da7961ef36a211c7bbe74e7c7e17
[INFO] running `Command { std: "docker" "start" "-a" "183c19ef7ad0b52de744754737b621a52d21da7961ef36a211c7bbe74e7c7e17", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling drm-sys v0.8.0
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]    Compiling cc v1.2.53
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling drm-fourcc v2.2.0
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.2.0
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking unicode-ccc v0.2.0
[INFO] [stderr]     Checking yazi v0.1.6
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]     Checking zeno v0.2.3
[INFO] [stderr]     Checking linux-raw-sys v0.6.5
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling tiny-xlib v0.2.4
[INFO] [stderr]    Compiling zmij v1.0.14
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]    Compiling wayland-scanner v0.31.8
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking lyon_geom v1.0.18
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking ctor-lite v0.1.0
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking lyon_path v1.0.16
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking kurbo v0.10.4
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking ioctl-rs v0.1.6
[INFO] [stderr]     Checking serial-core v0.4.0
[INFO] [stderr]     Checking termios v0.2.2
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking serial-unix v0.4.0
[INFO] [stderr]    Compiling wayland-backend v0.3.12
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking is-docker v0.2.0
[INFO] [stderr]     Checking time-core v0.1.7
[INFO] [stderr]     Checking is-wsl v0.4.0
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]     Checking serial v0.4.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking time v0.3.45
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking open v5.3.3
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]     Checking vte v0.13.1
[INFO] [stderr]     Checking clap_builder v4.5.54
[INFO] [stderr]     Checking shellexpand v3.1.1
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking drm-ffi v0.9.0
[INFO] [stderr]     Checking clap v4.5.54
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking wayland-client v0.31.12
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerocopy-derive v0.8.33
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking wayland-protocols v0.32.10
[INFO] [stderr]     Checking wayland-cursor v0.31.12
[INFO] [stderr]     Checking calloop v0.14.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking filedescriptor v0.8.3
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking font-types v0.7.3
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]     Checking drm v0.14.1
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking portable-pty v0.8.1
[INFO] [stderr]     Checking zerocopy v0.8.33
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking read-fonts v0.22.7
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant_utils v3.3.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]    Compiling zvariant_derive v5.9.1
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]    Compiling zvariant v5.9.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking softbuffer v0.4.8
[INFO] [stderr]     Checking clipboard_x11 v0.4.3
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking iced_core v0.13.2
[INFO] [stderr]     Checking skrifa v0.22.3
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.10
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.10
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.10
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling zbus_macros v5.13.1
[INFO] [stderr]     Checking iced_futures v0.13.2
[INFO] [stderr]     Checking iced_runtime v0.13.2
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking clipboard_wayland v0.2.2
[INFO] [stderr]     Checking window_clipboard v0.4.1
[INFO] [stderr]     Checking swash v0.1.19
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking zbus v5.13.1
[INFO] [stderr]     Checking cosmic-text v0.12.1
[INFO] [stderr]     Checking iced_graphics v0.13.0
[INFO] [stderr]     Checking iced_tiny_skia v0.13.0
[INFO] [stderr]     Checking iced_winit v0.13.0
[INFO] [stderr]     Checking iced_renderer v0.13.0
[INFO] [stderr]     Checking iced_widget v0.13.4
[INFO] [stderr]     Checking iced v0.13.1
[INFO] [stderr]     Checking notify-rust v4.11.7
[INFO] [stderr]     Checking agterm v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/recording.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Task`
[INFO] [stdout]  --> src/ui/palette.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use iced::{Border, Color, Element, Length, Task};
[INFO] [stdout]   |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/recording.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]    --> src/session.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |     use std::fs;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Task`
[INFO] [stdout]  --> src/ui/palette.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use iced::{Border, Color, Element, Length, Task};
[INFO] [stdout]   |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rate`, `pitch`, and `volume` are never read
[INFO] [stdout]    --> src/accessibility.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct ScreenReader {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |     rate: f32,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 102 |     pitch: f32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 103 |     volume: f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenReader` 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: field `registry` is never read
[INFO] [stdout]    --> src/plugin_api.rs:571:5
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub struct PluginManager {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 571 |     registry: PluginRegistry,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iced::Color`
[INFO] [stdout]  --> examples/render_cache_demo.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use iced::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bookmark`
[INFO] [stdout]  --> examples/bookmarks_demo.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use agterm::bookmarks::{Bookmark, BookmarkManager, BookmarkUpdate};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id3`
[INFO] [stdout]   --> examples/bookmarks_demo.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let id3 = manager
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_id3`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/automation_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bookmark`
[INFO] [stdout]  --> examples/bookmark_usage_examples.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use agterm::bookmarks::{Bookmark, BookmarkManager, BookmarkUpdate};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/bookmark_usage_examples.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let mut manager = BookmarkManager::with_defaults();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> tests/test_edge_cases.rs:445:9
[INFO] [stdout]     |
[INFO] [stdout] 445 |     let lines = screen.get_all_lines();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/snippets_integration_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Link`
[INFO] [stdout]  --> examples/link_handler_example.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use agterm::link_handler::{Link, LinkAction, LinkDetector, LinkHandler, LinkType};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> examples/profiles_demo.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> examples/simple_test.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn view(state: &State) -> Element<Message> {
[INFO] [stdout]    |                ^^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn view(state: &State) -> Element<'_, Message> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/test_integration.rs:768:9
[INFO] [stdout]     |
[INFO] [stdout] 768 |     let mut cloned = TerminalScreen::new(80, 24);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> tests/session_test.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/session_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PluginId`
[INFO] [stdout]   --> examples/plugin_example.rs:12:49
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PluginDependency, PluginError, PluginEvent, PluginId, PluginManager, PluginMetadata,
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> tests/test_shell_output.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |     let lines = screen.get_all_lines();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Task`
[INFO] [stdout]  --> src/ui/palette.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use iced::{Border, Color, Element, Length, Task};
[INFO] [stdout]   |                                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]    --> src/session.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |     use std::fs;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Task`
[INFO] [stdout]  --> src/ui/palette.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use iced::{Border, Color, Element, Length, Task};
[INFO] [stdout]   |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bell`
[INFO] [stdout]    --> src/sound.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let bell = BellSound::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_bell`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rate`, `pitch`, and `volume` are never read
[INFO] [stdout]    --> src/accessibility.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct ScreenReader {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |     rate: f32,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 102 |     pitch: f32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 103 |     volume: f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenReader` 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: field `registry` is never read
[INFO] [stdout]    --> src/plugin_api.rs:571:5
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub struct PluginManager {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 571 |     registry: PluginRegistry,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/render_cache.rs:1166:17
[INFO] [stdout]      |
[INFO] [stdout] 1166 |         assert!(initial_memory >= 0);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_modifiers` and `keybindings` are never read
[INFO] [stdout]    --> src/main.rs:459:5
[INFO] [stdout]     |
[INFO] [stdout] 419 | struct AgTerm {
[INFO] [stdout]     |        ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 459 |     current_modifiers: Modifiers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     keybindings: KeyBindings,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HorizontalSplit` and `VerticalSplit` are never constructed
[INFO] [stdout]    --> src/main.rs:681:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PaneLayout {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 681 |     HorizontalSplit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 682 |     /// Vertical split (left/right)
[INFO] [stdout] 683 |     VerticalSplit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PaneLayout` 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 `screen`, `parsed_line_cache`, and `canvas_state` are never read
[INFO] [stdout]    --> src/main.rs:689:5
[INFO] [stdout]     |
[INFO] [stdout] 687 | struct Pane {
[INFO] [stdout]     |        ---- fields in this struct
[INFO] [stdout] 688 |     /// Screen buffer for this pane
[INFO] [stdout] 689 |     screen: TerminalScreen,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     parsed_line_cache: Vec<Vec<StyledSpan>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     canvas_state: TerminalCanvasState,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/main.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 704 | impl Pane {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 705 |     /// Create a new pane with given dimensions
[INFO] [stdout] 706 |     fn new(cols: usize, rows: usize, pty_id: Option<uuid::Uuid>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tab_index` and `position` are never read
[INFO] [stdout]    --> src/main.rs:741:5
[INFO] [stdout]     |
[INFO] [stdout] 740 | struct TabContextMenu {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 741 |     tab_index: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 742 |     position: (f32, f32),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TabContextMenu` 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 `title_info`, `pane_layout`, `panes`, and `focused_pane` are never read
[INFO] [stdout]    --> src/main.rs:783:5
[INFO] [stdout]     |
[INFO] [stdout] 746 | struct TerminalTab {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 783 |     title_info: terminal::title::TitleInfo,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 790 |     pane_layout: PaneLayout,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 791 |     /// Panes within this tab (empty if using legacy single-pane mode)
[INFO] [stdout] 792 |     panes: Vec<Pane>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 793 |     /// Index of the focused pane
[INFO] [stdout] 794 |     focused_pane: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/main.rs:828:5
[INFO] [stdout]     |
[INFO] [stdout] 825 | enum Message {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 828 |     NewSshTab(ssh::SshProfile),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 897 |     TabDragStart(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 898 |     TabDragMove(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 899 |     TabDragEnd,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 902 |     TabContextMenu(usize, f32, f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 903 |     CloseContextMenu,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 904 |     TabRenameStart(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 905 |     TabRenameInput(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 906 |     TabRenameSubmit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 907 |     TabRenameCancel,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 913 |     HistorySearchPrev,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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 `Alias` is never constructed
[INFO] [stdout]   --> src/completion.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum CompletionKind {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Alias,     // Shell alias
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompletionKind` 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 `prefix` is never used
[INFO] [stdout]   --> src/completion.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CompletionKind {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 30 |     /// Get display prefix for the completion kind
[INFO] [stdout] 31 |     pub fn prefix(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_history` and `clear_history` are never used
[INFO] [stdout]    --> src/completion.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl CompletionEngine {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn get_history(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn clear_history(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_combination` is never used
[INFO] [stdout]    --> src/config/mod.rs:539:12
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl KeyBinding {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn key_combination(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `ctrl`, `shift`, and `ctrl_shift` are never used
[INFO] [stdout]    --> src/config/mod.rs:565:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 565 |     pub fn ctrl() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn ctrl_shift() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/config/mod.rs:801:12
[INFO] [stdout]     |
[INFO] [stdout] 627 | impl KeybindingsConfig {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 801 |     pub fn keybindings_file_path() -> Option<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 806 |     pub fn load_keybindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 848 |     pub fn save_keybindings(bindings: &[KeyBinding]) -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 874 |     pub fn detect_conflicts(bindings: &[KeyBinding]) -> Vec<(KeyBinding, KeyBinding)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 891 |     pub fn reset_to_defaults() -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 905 |     pub fn find_binding(&self, key: &str, modifiers: &KeyModifiers) -> Option<&KeyBinding> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 912 |     pub fn bindings_for_action(&self, action: &str) -> Vec<&KeyBinding> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_pty_environment` is never used
[INFO] [stdout]    --> src/config/mod.rs:990:12
[INFO] [stdout]     |
[INFO] [stdout] 988 | impl EnvironmentConfig {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] 989 |     /// Convert to PtyEnvironment for PTY session creation
[INFO] [stdout] 990 |     pub fn to_pty_environment(&self) -> crate::terminal::pty::PtyEnvironment {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Profile` is never constructed
[INFO] [stdout]     --> src/config/mod.rs:1698:12
[INFO] [stdout]      |
[INFO] [stdout] 1698 | pub struct Profile {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/config/mod.rs:1725:12
[INFO] [stdout]      |
[INFO] [stdout] 1723 | impl Profile {
[INFO] [stdout]      | ------------ associated items in this implementation
[INFO] [stdout] 1724 |     /// Create a new profile with default settings
[INFO] [stdout] 1725 |     pub fn new(name: String) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1739 |     pub fn profiles_dir() -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1744 |     pub fn profile_path(name: &str) -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1749 |     pub fn load(name: &str) -> Result<Self, ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1769 |     pub fn save(&self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1788 |     pub fn delete(name: &str) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1806 |     pub fn list() -> Result<Vec<String>, ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1835 |     pub fn create_default_profiles() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1884 |     pub fn apply_to_config(&self, config: &mut AppConfig) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Snippet` is never constructed
[INFO] [stdout]     --> src/config/mod.rs:1920:12
[INFO] [stdout]      |
[INFO] [stdout] 1920 | pub struct Snippet {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]     --> src/config/mod.rs:1933:12
[INFO] [stdout]      |
[INFO] [stdout] 1931 | impl Snippet {
[INFO] [stdout]      | ------------ associated functions in this implementation
[INFO] [stdout] 1932 |     /// Create a new snippet
[INFO] [stdout] 1933 |     pub fn new(name: String, trigger: String, content: String, category: String) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1943 |     pub fn snippets_dir() -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1948 |     pub fn snippets_file_path() -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1953 |     pub fn load_from_file() -> Result<Vec<Snippet>, ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1979 |     pub fn save_to_file(snippets: &[Snippet]) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2005 |     pub fn default_snippets() -> Vec<Snippet> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2160 |     pub fn initialize_default_file() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2175 |     pub fn find_by_trigger<'a>(snippets: &'a [Snippet], trigger: &str) -> Option<&'a Snippet> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2180 |     pub fn find_by_category<'a>(snippets: &'a [Snippet], category: &str) -> Vec<&'a Snippet> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2185 |     pub fn get_categories(snippets: &[Snippet]) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hook` is never constructed
[INFO] [stdout]     --> src/config/mod.rs:2199:12
[INFO] [stdout]      |
[INFO] [stdout] 2199 | pub struct Hook {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HookEvent` is never used
[INFO] [stdout]     --> src/config/mod.rs:2214:10
[INFO] [stdout]      |
[INFO] [stdout] 2214 | pub enum HookEvent {
[INFO] [stdout]      |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HookAction` is never used
[INFO] [stdout]     --> src/config/mod.rs:2242:10
[INFO] [stdout]      |
[INFO] [stdout] 2242 | pub enum HookAction {
[INFO] [stdout]      |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_hook_volume` is never used
[INFO] [stdout]     --> src/config/mod.rs:2276:4
[INFO] [stdout]      |
[INFO] [stdout] 2276 | fn default_hook_volume() -> f32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/config/mod.rs:2282:12
[INFO] [stdout]      |
[INFO] [stdout] 2280 | impl Hook {
[INFO] [stdout]      | --------- associated items in this implementation
[INFO] [stdout] 2281 |     /// Create a new hook
[INFO] [stdout] 2282 |     pub fn new(name: String, event_type: HookEvent, action: HookAction) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2292 |     pub fn hooks_dir() -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2297 |     pub fn hooks_file_path() -> Option<PathBuf> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2302 |     pub fn load_from_file() -> Result<Vec<Hook>, ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2327 |     pub fn save_to_file(hooks: &[Hook]) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2353 |     pub fn default_hooks() -> Vec<Hook> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2405 |     pub fn initialize_default_file() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2420 |     pub fn matches_event(&self, event: &HookEvent) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2493 |     pub fn execute(&self) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookManager` is never constructed
[INFO] [stdout]     --> src/config/mod.rs:2540:12
[INFO] [stdout]      |
[INFO] [stdout] 2540 | pub struct HookManager {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/config/mod.rs:2546:12
[INFO] [stdout]      |
[INFO] [stdout] 2544 | impl HookManager {
[INFO] [stdout]      | ---------------- associated items in this implementation
[INFO] [stdout] 2545 |     /// Create a new hook manager
[INFO] [stdout] 2546 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2556 |     pub fn hooks(&self) -> &[Hook] {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2561 |     pub fn add_hook(&mut self, hook: Hook) {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2566 |     pub fn remove_hook(&mut self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2576 |     pub fn set_hook_enabled(&mut self, name: &str, enabled: bool) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2586 |     pub fn process_event(&self, event: &HookEvent) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2597 |     pub fn save(&self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2602 |     pub fn reload(&mut self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/debug/event_log.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum EventType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 11 |     /// PTY output received (bytes count)
[INFO] [stdout] 12 |     PtyOutput(usize),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     /// PTY input sent (bytes count)
[INFO] [stdout] 14 |     PtyInput(usize),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 15 |     /// Key press event (key name)
[INFO] [stdout] 16 |     KeyPress(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 17 |     /// Mouse click event (x, y)
[INFO] [stdout] 18 |     MouseClick(i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 19 |     /// Bell event
[INFO] [stdout] 20 |     Bell,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 21 |     /// Terminal resize (cols, rows)
[INFO] [stdout] 22 |     Resize(u16, u16),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 23 |     /// OSC sequence received (sequence type)
[INFO] [stdout] 24 |     OscSequence(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 25 |     /// Escape sequence received (description)
[INFO] [stdout] 26 |     EscapeSequence(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     /// New tab created
[INFO] [stdout] 28 |     TabCreated,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 29 |     /// Tab closed
[INFO] [stdout] 30 |     TabClosed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 31 |     /// Custom event with description
[INFO] [stdout] 32 |     Custom(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventType` 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 `matches` is never used
[INFO] [stdout]   --> src/debug/event_log.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl EventType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn matches(&self, filter: &EventType) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/debug/event_log.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl LogEntry {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 71 |     /// Create a new log entry
[INFO] [stdout] 72 |     pub fn new(event_type: EventType, description: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filter` is never read
[INFO] [stdout]    --> src/debug/event_log.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct EventLog {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     filter: Option<Vec<EventType>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EventLog` 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 `log`, `entries`, `set_filter`, `filter`, `filtered_entries`, and `is_empty` are never used
[INFO] [stdout]    --> src/debug/event_log.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl EventLog {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn log(&mut self, event_type: EventType, description: String) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn entries(&self) -> &VecDeque<LogEntry> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn set_filter(&mut self, filter: Option<Vec<EventType>>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn filter(&self) -> Option<&Vec<EventType>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn filtered_entries(&self) -> Vec<&LogEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Encoding` is never used
[INFO] [stdout]   --> src/encoding.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Encoding {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/encoding.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl Encoding {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  40 |     /// Returns the canonical name of the encoding
[INFO] [stdout]  41 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn available() -> &'static [Self] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn decode<'a>(&self, bytes: &'a [u8]) -> Result<Cow<'a, str>, EncodingError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn encode(&self, s: &str) -> Result<Vec<u8>, EncodingError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn decode_utf16(&self, bytes: &[u8], endian: Endian) -> Result<Cow<'static, str>, EncodingError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn encode_utf16(&self, s: &str, endian: Endian) -> Result<Vec<u8>, EncodingError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn auto_detect(bytes: &[u8]) -> Option<(Self, f32)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Endian` is never used
[INFO] [stdout]    --> src/encoding.rs:236:6
[INFO] [stdout]     |
[INFO] [stdout] 236 | enum Endian {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_endian` is never used
[INFO] [stdout]    --> src/encoding.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn native_endian() -> Endian {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EncodingError` is never used
[INFO] [stdout]    --> src/encoding.rs:252:10
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub enum EncodingError {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/history.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl HistoryEntry {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 23 |     /// Create a new history entry
[INFO] [stdout] 24 |     pub fn new(command: String, cwd: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ignore_duplicates` and `ignore_space` are never read
[INFO] [stdout]   --> src/history.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct HistoryManager {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     ignore_duplicates: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     /// Whether to ignore commands starting with space
[INFO] [stdout] 62 |     ignore_space: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HistoryManager` 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 associated items are never used
[INFO] [stdout]    --> src/history.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl HistoryManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  66 |     /// Create a new history manager
[INFO] [stdout]  67 |     pub fn new(max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn add(&mut self, command: String, cwd: Option<String>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn search_query(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn search_position(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn recent(&self, n: usize) -> Vec<&HistoryEntry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn all(&self) -> &[HistoryEntry] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/keybind.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl Action {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_action`, `unbind`, and `from_iced_key` are never used
[INFO] [stdout]    --> src/keybind.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl KeyBindings {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn get_action(&self, combo: &KeyCombo) -> Option<&Action> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn unbind(&mut self, combo: &KeyCombo) -> Option<Action> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn from_iced_key(key: &Key, modifiers: &Modifiers) -> Option<KeyCombo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/keybind.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn ctrl() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn alt() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn ctrl_shift() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn alt_shift() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn from_config(config: &ConfigKeyModifiers) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn is_any(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MacroError` is never used
[INFO] [stdout]   --> src/macros.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum MacroError {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyCombo` is never constructed
[INFO] [stdout]   --> src/macros.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct KeyCombo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyModifiers` is never constructed
[INFO] [stdout]   --> src/macros.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct KeyModifiers {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `none`, `ctrl`, `alt`, `shift`, `cmd`, and `ctrl_alt` are never used
[INFO] [stdout]    --> src/macros.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  62 |     /// Create modifiers with no keys pressed
[INFO] [stdout]  63 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn ctrl() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn alt() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn cmd() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn ctrl_alt() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MacroAction` is never used
[INFO] [stdout]    --> src/macros.rs:111:10
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub enum MacroAction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyEvent` is never constructed
[INFO] [stdout]    --> src/macros.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct KeyEvent {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_key_combo` are never used
[INFO] [stdout]    --> src/macros.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl KeyEvent {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 164 |     /// Create a new key event
[INFO] [stdout] 165 |     pub fn new(key: String, modifiers: KeyModifiers) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn to_key_combo(&self) -> KeyCombo {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Macro` is never constructed
[INFO] [stdout]    --> src/macros.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct Macro {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_trigger`, `add_action`, `with_actions`, `set_enabled`, and `validate` are never used
[INFO] [stdout]    --> src/macros.rs:199:12
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl Macro {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 198 |     /// Create a new macro
[INFO] [stdout] 199 |     pub fn new(name: String, description: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn with_trigger(mut self, trigger: KeyCombo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn add_action(mut self, action: MacroAction) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn with_actions(mut self, actions: Vec<MacroAction>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn set_enabled(mut self, enabled: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn validate(&self) -> Result<(), MacroError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecordingState` is never constructed
[INFO] [stdout]    --> src/macros.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct RecordingState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MacroEngine` is never constructed
[INFO] [stdout]    --> src/macros.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct MacroEngine {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/macros.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | impl MacroEngine {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 279 |     /// Create a new macro engine
[INFO] [stdout] 280 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn register(&mut self, macro_def: Macro) -> Result<(), MacroError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn unregister(&mut self, name: &str) -> Result<Macro, MacroError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn get(&self, name: &str) -> Option<&Macro> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn get_mut(&mut self, name: &str) -> Option<&mut Macro> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn list(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn match_trigger(&self, combo: &KeyCombo) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn execute(&self, name: &str) -> Result<Vec<MacroAction>, MacroError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn execute_with_depth(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn start_recording(&mut self, name: String, capture_timing: bool) -> Result<(), MacroError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub fn stop_recording(&mut self, description: String, trigger: Option<KeyCombo>) -> Result<Macro, MacroError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn cancel_recording(&mut self) -> Result<(), MacroError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn is_recording(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub fn recording_state(&self) -> Option<&RecordingState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn record_key(&mut self, key_event: KeyEvent) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub fn record_text(&mut self, text: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn load_from_config(&mut self, macros: Vec<Macro>) -> Result<(), MacroError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523 |     pub fn export_all(&self) -> Vec<Macro> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn set_max_recursion_depth(&mut self, depth: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_line` is never used
[INFO] [stdout]    --> src/macros.rs:550:12
[INFO] [stdout]     |
[INFO] [stdout] 550 |     pub fn send_line(text: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_text` is never used
[INFO] [stdout]    --> src/macros.rs:557:12
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub fn send_text(text: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]    --> src/macros.rs:562:12
[INFO] [stdout]     |
[INFO] [stdout] 562 |     pub fn run_command(cmd: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_ms` is never used
[INFO] [stdout]    --> src/macros.rs:567:12
[INFO] [stdout]     |
[INFO] [stdout] 567 |     pub fn wait_ms(ms: u64) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_secs` is never used
[INFO] [stdout]    --> src/macros.rs:572:12
[INFO] [stdout]     |
[INFO] [stdout] 572 |     pub fn wait_secs(secs: u64) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `repeat` is never used
[INFO] [stdout]    --> src/macros.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 577 |     pub fn repeat(action: MacroAction, count: usize) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence` is never used
[INFO] [stdout]    --> src/macros.rs:585:12
[INFO] [stdout]     |
[INFO] [stdout] 585 |     pub fn sequence(actions: Vec<MacroAction>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_macro` is never used
[INFO] [stdout]    --> src/macros.rs:590:12
[INFO] [stdout]     |
[INFO] [stdout] 590 |     pub fn call_macro(name: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_ctrl_c` is never used
[INFO] [stdout]    --> src/macros.rs:595:12
[INFO] [stdout]     |
[INFO] [stdout] 595 |     pub fn send_ctrl_c() -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_enter` is never used
[INFO] [stdout]    --> src/macros.rs:608:12
[INFO] [stdout]     |
[INFO] [stdout] 608 |     pub fn send_enter() -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_escape` is never used
[INFO] [stdout]    --> src/macros.rs:616:12
[INFO] [stdout]     |
[INFO] [stdout] 616 |     pub fn send_escape() -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MouseButton` is never used
[INFO] [stdout]   --> src/mouse_actions.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum MouseButton {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MouseAction` is never used
[INFO] [stdout]   --> src/mouse_actions.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum MouseAction {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScrollDirection` is never used
[INFO] [stdout]   --> src/mouse_actions.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum ScrollDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MousePosition` is never constructed
[INFO] [stdout]   --> src/mouse_actions.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct MousePosition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `distance_to` are never used
[INFO] [stdout]   --> src/mouse_actions.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl MousePosition {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 60 |     /// Create a new mouse position
[INFO] [stdout] 61 |     pub fn new(x: f32, y: f32, col: usize, row: usize, in_scrollback: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn distance_to(&self, other: &MousePosition) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseModifiers` is never constructed
[INFO] [stdout]   --> src/mouse_actions.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct MouseModifiers {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `none`, `any`, and `matches` are never used
[INFO] [stdout]    --> src/mouse_actions.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl MouseModifiers {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  89 |     /// Create modifiers with no keys pressed
[INFO] [stdout]  90 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn any(&self) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn matches(&self, other: &MouseModifiers) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseEvent` is never constructed
[INFO] [stdout]    --> src/mouse_actions.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct MouseEvent {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mouse_actions.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl MouseEvent {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 125 |     /// Create a new mouse event
[INFO] [stdout] 126 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MouseCommand` is never used
[INFO] [stdout]    --> src/mouse_actions.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum MouseCommand {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectionType` is never used
[INFO] [stdout]    --> src/mouse_actions.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub enum SelectionType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseBinding` is never constructed
[INFO] [stdout]    --> src/mouse_actions.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct MouseBinding {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `matches` are never used
[INFO] [stdout]    --> src/mouse_actions.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl MouseBinding {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 179 |     /// Create a new mouse binding
[INFO] [stdout] 180 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn matches(&self, event: &MouseEvent) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClickDetector` is never constructed
[INFO] [stdout]    --> src/mouse_actions.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct ClickDetector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `detect`, `reset`, `set_max_interval`, and `set_max_distance` are never used
[INFO] [stdout]    --> src/mouse_actions.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl ClickDetector {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 213 |     /// Create a new click detector with default settings
[INFO] [stdout] 214 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn detect(&mut self, event: &MouseEvent) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn set_max_interval(&mut self, duration: Duration) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn set_max_distance(&mut self, distance: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DragState` is never constructed
[INFO] [stdout]    --> src/mouse_actions.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub struct DragState {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_position`, `distance`, and `duration` are never used
[INFO] [stdout]    --> src/mouse_actions.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl DragState {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 297 |     /// Create a new drag state
[INFO] [stdout] 298 |     pub fn new(start_position: MousePosition, button: MouseButton) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn update_position(&mut self, position: MousePosition) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn distance(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn duration(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MouseHandler` is never constructed
[INFO] [stdout]    --> src/mouse_actions.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub struct MouseHandler {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mouse_actions.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl MouseHandler {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 332 |     /// Create a new mouse handler with default bindings
[INFO] [stdout] 333 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     fn add_default_bindings(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn handle_event(&mut self, mut event: MouseEvent) -> Option<MouseCommand> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub fn add_binding(&mut self, binding: MouseBinding) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn remove_binding(&mut self, action: &MouseAction, mods: &MouseModifiers) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 504 |     pub fn get_binding(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn set_enabled(&mut self, action: &MouseAction, mods: &MouseModifiers, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn drag_state(&self) -> Option<&DragState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn reset_click_detector(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_config` and `notify_command_complete` are never used
[INFO] [stdout]   --> src/notification.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl NotificationManager {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn update_config(&mut self, config: NotificationConfig) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn notify_command_complete(&self, command: &str, exit_code: i32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SESSION_VERSION` is never used
[INFO] [stdout]   --> src/session.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const SESSION_VERSION: u32 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionData` is never constructed
[INFO] [stdout]   --> src/session.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SessionData {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabState` is never constructed
[INFO] [stdout]   --> src/session.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TabState {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WindowState` is never constructed
[INFO] [stdout]   --> src/session.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct WindowState {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SessionError` is never used
[INFO] [stdout]   --> src/session.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum SessionError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/session.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl SessionData {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  87 |     /// Create a new session data instance
[INFO] [stdout]  88 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn save(&self, path: &PathBuf) -> Result<(), SessionError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn load(path: &PathBuf) -> Result<Self, SessionError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn auto_save_path() -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn recovery_path() -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn backup_path(index: usize) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn save_backup(&self, max_backups: usize) -> Result<PathBuf, SessionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn has_recovery_file() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn attempt_recovery() -> Result<Self, SessionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn save_recovery(&self) -> Result<(), SessionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn cleanup_recovery() -> Result<(), SessionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn list_backups() -> Result<Vec<(PathBuf, SystemTime)>, SessionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn validate(&self) -> Result<(), SessionError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_env_var`, and `get_filtered_env_vars` are never used
[INFO] [stdout]    --> src/session.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl TabState {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 273 |     /// Create a new tab state
[INFO] [stdout] 274 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn add_env_var(&mut self, key: String, value: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn get_filtered_env_vars() -> Vec<(String, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_position`, and `with_maximized` are never used
[INFO] [stdout]    --> src/session.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | impl WindowState {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 318 |     /// Create a new window state
[INFO] [stdout] 319 |     pub fn new(width: u32, height: u32, font_size: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn with_position(mut self, x: i32, y: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn with_maximized(mut self, maximized: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/session.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     pub fn serialize<S>(time: &SystemTime, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/session.rs:359:12
[INFO] [stdout]     |
[INFO] [stdout] 359 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<SystemTime, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_name` is never used
[INFO] [stdout]   --> src/shell.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ShellType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 23 |     /// Get the display name of the shell type
[INFO] [stdout] 24 |     pub fn display_name(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/shell.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ShellInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub version: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShellInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_version` is never used
[INFO] [stdout]    --> src/shell.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl ShellInfo {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn get_version(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_available` is never used
[INFO] [stdout]   --> src/sound.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl BellSound {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_ssh_config` are never used
[INFO] [stdout]    --> src/ssh.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl SshProfile {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout]  43 |     /// Create a new SSH profile with minimal required information
[INFO] [stdout]  44 |     pub fn new(name: String, host: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn from_ssh_config(hostname: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SshProfileManager` is never constructed
[INFO] [stdout]    --> src/ssh.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct SshProfileManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `get`, `remove`, `list`, and `load_from_ssh_config` are never used
[INFO] [stdout]    --> src/ssh.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl SshProfileManager {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 167 |     /// Create a new empty profile manager
[INFO] [stdout] 168 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn add(&mut self, profile: SshProfile) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn get(&self, name: &str) -> Option<&SshProfile> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn remove(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn list(&self) -> &[SshProfile] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn load_from_ssh_config() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ssh_config_path` is never used
[INFO] [stdout]    --> src/ssh.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn ssh_config_path() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ssh_config` is never used
[INFO] [stdout]    --> src/ssh.rs:263:4
[INFO] [stdout]     |
[INFO] [stdout] 263 | fn parse_ssh_config(content: &str) -> HashMap<String, HashMap<String, String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClipboardManager` is never constructed
[INFO] [stdout]   --> src/terminal/clipboard.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ClipboardManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `handle_osc52`, `get_clipboard`, and `set_clipboard` are never used
[INFO] [stdout]   --> src/terminal/clipboard.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ClipboardManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 19 |     /// Create a new clipboard manager
[INFO] [stdout] 20 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn handle_osc52(&mut self, selection: char, data: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_clipboard(&mut self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn set_clipboard(&mut self, text: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_multiplexed` is never used
[INFO] [stdout]    --> src/terminal/env.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl EnvironmentInfo {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_multiplexed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `enable_animations`, `enable_font_ligatures`, and `scrollback_lines` are never read
[INFO] [stdout]    --> src/terminal/env.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct EnvironmentSettings {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub enable_animations: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 331 |     /// Enable font ligatures
[INFO] [stdout] 332 |     pub enable_font_ligatures: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     /// Scrollback buffer size
[INFO] [stdout] 334 |     pub scrollback_lines: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnvironmentSettings` 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: struct `Hyperlink` is never constructed
[INFO] [stdout]   --> src/terminal/hyperlink.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Hyperlink {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse_osc8`, `parse_id_from_params`, and `url` are never used
[INFO] [stdout]   --> src/terminal/hyperlink.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Hyperlink {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 23 |     /// Create a new hyperlink with URL and optional ID
[INFO] [stdout] 24 |     pub fn new(url: String, id: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn parse_osc8(data: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn parse_id_from_params(params: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn url(&self) -> &str {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/terminal/screen.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl DirtyTracker {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn mark_lines(&mut self, lines: impl Iterator<Item = usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn mark_cursor(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn is_line_dirty(&self, line: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn needs_redraw(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn needs_full_redraw(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_cursor_only(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn dirty_lines(&self) -> &HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn dirty_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sixel`, `Kitty`, and `ITerm2` are never constructed
[INFO] [stdout]    --> src/terminal/screen.rs:296:5
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum ImageProtocol {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 295 |     /// Sixel graphics (DEC VT340+)
[INFO] [stdout] 296 |     Sixel,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 297 |     /// Kitty graphics protocol
[INFO] [stdout] 298 |     Kitty,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 299 |     /// iTerm2 inline images protocol
[INFO] [stdout] 300 |     ITerm2,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageProtocol` 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 `width`, `height`, `data`, `protocol`, and `id` are never read
[INFO] [stdout]    --> src/terminal/screen.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct ImageData {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 306 |     /// Image width in pixels
[INFO] [stdout] 307 |     pub width: u32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 308 |     /// Image height in pixels
[INFO] [stdout] 309 |     pub height: u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 310 |     /// Raw image data (protocol-specific format)
[INFO] [stdout] 311 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 312 |     /// Protocol used for this image
[INFO] [stdout] 313 |     pub protocol: ImageProtocol,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 314 |     /// Image ID for tracking (protocol-specific)
[INFO] [stdout] 315 |     pub id: Option<u32>,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageData` 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 items `new`, `with_id`, `exceeds_size_limit`, and `memory_size` are never used
[INFO] [stdout]    --> src/terminal/screen.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl ImageData {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 319 |     /// Create a new image data instance
[INFO] [stdout] 320 |     pub fn new(width: u32, height: u32, data: Vec<u8>, protocol: ImageProtocol) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn with_id(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn exceeds_size_limit(&self, max_size_bytes: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn memory_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `space_saved` and `space_saved_percent` are never used
[INFO] [stdout]    --> src/terminal/screen.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 547 | impl CompressionStats {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn space_saved(&self) -> isize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     pub fn space_saved_percent(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/terminal/screen.rs:1005:12
[INFO] [stdout]      |
[INFO] [stdout]  671 | impl TerminalScreen {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1005 |     pub fn enter_alternate_screen(&mut self, clear: bool, save_cursor: bool) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1013 |     pub fn leave_alternate_screen(&mut self, restore_cursor: bool) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1020 |     pub fn is_alternate_screen(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1025 |     pub fn current_buffer(&self) -> &Vec<Vec<Cell>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1041 |     pub fn compression_stats(&self) -> &CompressionStats {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1046 |     pub fn dirty_tracker(&self) -> &DirtyTracker {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1051 |     pub fn dirty_tracker_mut(&mut self) -> &mut DirtyTracker {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1056 |     pub fn clear_dirty(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     pub fn cursor_blink_enabled(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     pub fn get_palette_color(&self, index: u8) -> Option<(u8, u8, u8)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     pub fn default_fg_color(&self) -> Option<(u8, u8, u8)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub fn default_bg_color(&self) -> Option<(u8, u8, u8)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1207 |     pub fn memory_stats(&self) -> MemoryStats {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1239 |     pub fn memory_usage_string(&self) -> String {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1244 |     pub fn cleanup_interner(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `memory_usage` are never used
[INFO] [stdout]   --> src/terminal/screen/memory.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl StringInterner {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn stats(&self) -> (usize, usize, usize) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn memory_usage(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryStats` is never constructed
[INFO] [stdout]    --> src/terminal/screen/memory.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct MemoryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/terminal/screen/memory.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl MemoryStats {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 163 |     /// Get a human-readable string representation
[INFO] [stdout] 164 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cell_memory_size` is never used
[INFO] [stdout]    --> src/terminal/screen/memory.rs:193:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub fn cell_memory_size(cell: &super::Cell) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_memory_size` is never used
[INFO] [stdout]    --> src/terminal/screen/memory.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn line_memory_size(line: &[super::Cell]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollbackConfig` is never constructed
[INFO] [stdout]   --> src/terminal/screen/scrollback.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ScrollbackConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollbackBuffer` is never constructed
[INFO] [stdout]   --> src/terminal/screen/scrollback.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ScrollbackBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/terminal/screen/scrollback.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl ScrollbackBuffer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  48 |     /// Create a new scrollback buffer with the given configuration
[INFO] [stdout]  49 |     pub fn new(config: ScrollbackConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn with_max_lines(max_lines: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn push(&mut self, line: &[Cell]) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn get(&self, index: usize) -> Option<Vec<Cell>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_compressed(&self, index: usize) -> Option<&CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn memory_usage(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn uncompressed_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn compressed_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn compression_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn config(&self) -> &ScrollbackConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn set_config(&mut self, config: ScrollbackConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn trim_to_limit(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn search(&self, pattern: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn search_case_sensitive(&self, pattern: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn iter(&self) -> impl Iterator<Item = &CompressedLine> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn pop_back(&mut self) -> Option<CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn pop_front(&mut self) -> Option<CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn clone_lines(&self) -> VecDeque<CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn restore_from(&mut self, lines: VecDeque<CompressedLine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchMatch` is never constructed
[INFO] [stdout]  --> src/terminal/search.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SearchMatch {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchState` is never constructed
[INFO] [stdout]   --> src/terminal/search.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SearchState {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/terminal/search.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl SearchState {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  42 |     /// Create a new search state
[INFO] [stdout]  43 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn set_query(&mut self, query: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn toggle_regex(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn toggle_case_sensitive(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn compile_pattern(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn has_pattern(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn find_in_line(&self, line_num: usize, text: &str) -> Vec<SearchMatch> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn search_line(&mut self, line_num: usize, text: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn next_match(&mut self) -> Option<&SearchMatch> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn prev_match(&mut self) -> Option<&SearchMatch> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn current(&self) -> Option<&SearchMatch> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn match_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn current_index(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn is_match_at(&self, line: usize, col: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_current_match_at(&self, line: usize, col: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Word` and `Line` are never constructed
[INFO] [stdout]   --> src/terminal/selection.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum SelectionMode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     Word,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 48 |     /// Line-level selection (triple-click)
[INFO] [stdout] 49 |     Line,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SelectionMode` 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 `contains`, `clear`, `extract_text`, `expand_to_word`, and `expand_to_line` are never used
[INFO] [stdout]    --> src/terminal/selection.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Selection {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn contains(&self, line: usize, col: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn extract_text<T: GetLineText>(&self, screen: &T) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn expand_to_word<T: GetLineText>(&mut self, screen: &T, line: usize, col: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn expand_to_line<T: GetLineText>(&mut self, screen: &T, line: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetLineText` is never used
[INFO] [stdout]    --> src/terminal/selection.rs:235:11
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub trait GetLineText {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_word_char` is never used
[INFO] [stdout]    --> src/terminal/selection.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn is_word_char(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `window_title`, `icon_title`, `current_command`, and `cwd` are never read
[INFO] [stdout]   --> src/terminal/title.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct TitleInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 10 |     /// OSC 0/2: Window title set by application
[INFO] [stdout] 11 |     pub window_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     /// OSC 1: Icon title (typically shorter version)
[INFO] [stdout] 13 |     pub icon_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 14 |     /// Current command being executed (from shell integration)
[INFO] [stdout] 15 |     pub current_command: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Current working directory (from OSC 7)
[INFO] [stdout] 17 |     pub cwd: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TitleInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/terminal/title.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl TitleInfo {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn handle_osc(&mut self, command: u32, data: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn set_current_command(&mut self, command: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn display_title(&self, default: &str, max_length: Option<usize>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn short_title(&self, default: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn cwd(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn window_title(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn icon_title(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn current_command(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_file_url` is never used
[INFO] [stdout]    --> src/terminal/title.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn parse_file_url(url: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `URL_REGEX` is never used
[INFO] [stdout]   --> src/terminal/url.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub static URL_REGEX: LazyLock<Regex> = LazyLock::new(|| {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FILE_PATH_REGEX` is never used
[INFO] [stdout]   --> src/terminal/url.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static FILE_PATH_REGEX: LazyLock<Regex> = LazyLock::new(|| {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LinkType` is never used
[INFO] [stdout]   --> src/terminal/url.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum LinkType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_link_at` is never used
[INFO] [stdout]   --> src/terminal/url.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn find_link_at(text: &str, col: usize) -> Option<LinkType> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_link` is never used
[INFO] [stdout]   --> src/terminal/url.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn open_link(link: &LinkType) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_frame_time` and `last_lines_rendered` are never read
[INFO] [stdout]    --> src/terminal_canvas.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct TerminalCanvasState {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 186 |     last_frame_time: Option<Duration>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 187 |     #[cfg(debug_assertions)]
[INFO] [stdout] 188 |     last_lines_rendered: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_color`, `hex_to_color`, `from_rgb`, and `from_rgb_float` are never used
[INFO] [stdout]    --> src/theme.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl ColorDef {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 123 |     /// Convert to Iced Color
[INFO] [stdout] 124 |     pub fn to_color(&self) -> Color {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn hex_to_color(hex: &str) -> Color {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn from_rgb(r: u8, g: u8, b: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn from_rgb_float(r: f32, g: f32, b: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_color` is never used
[INFO] [stdout]    --> src/theme.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl AnsiPalette {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 176 |     /// Get color by ANSI index (0-15)
[INFO] [stdout] 177 |     pub fn get_color(&self, index: u8) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `available_themes` is never used
[INFO] [stdout]    --> src/theme.rs:645:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl Theme {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn available_themes() -> Vec<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_toml_str`, `from_toml_file`, and `to_toml_file` are never used
[INFO] [stdout]    --> src/theme.rs:665:12
[INFO] [stdout]     |
[INFO] [stdout] 663 | impl Theme {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 664 |     /// Load theme from TOML string
[INFO] [stdout] 665 |     pub fn from_toml_str(toml_str: &str) -> Result<Self, toml::de::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn from_toml_file(path: &std::path::Path) -> std::io::Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub fn to_toml_file(&self, path: &std::path::Path) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status_bar_style` and `primary_background_style` are never used
[INFO] [stdout]    --> src/theme.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 709 | impl Theme {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 710 |     /// Container style for status bar
[INFO] [stdout] 711 |     pub fn status_bar_style(&self) -> impl Fn(&iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 727 |     pub fn primary_background_style(&self) -> impl Fn(&iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_enabled`, `remove`, `triggers`, `get`, and `rebuild_compiled` are never used
[INFO] [stdout]    --> src/trigger.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl TriggerManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_enabled(&mut self, name: &str, enabled: bool) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn remove(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn triggers(&self) -> &[Trigger] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn get(&self, name: &str) -> Option<&Trigger> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn rebuild_compiled(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SelectItem` is never constructed
[INFO] [stdout]   --> src/ui/palette.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum PaletteMessage {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     SelectItem(usize),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PaletteMessage` 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 `filtered_count` is never used
[INFO] [stdout]    --> src/ui/palette.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl CommandPalette {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn filtered_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCENT_GREEN` is never used
[INFO] [stdout]   --> src/main.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub const ACCENT_GREEN: Color = Color::from_rgb(0.35, 0.78, 0.55); // #59c78c
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_bar_style` is never used
[INFO] [stdout]    --> src/main.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn status_bar_style(_theme: &iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2488:13
[INFO] [stdout]      |
[INFO] [stdout] 2488 |     fn view(&self) -> Element<Message> {
[INFO] [stdout]      |             ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |             |
[INFO] [stdout]      |             the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2488 |     fn view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2588:21
[INFO] [stdout]      |
[INFO] [stdout] 2588 |     fn view_tab_bar(&self) -> Element<Message> {
[INFO] [stdout]      |                     ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2588 |     fn view_tab_bar(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2759:30
[INFO] [stdout]      |
[INFO] [stdout] 2759 |     fn view_terminal_content(&self) -> Element<Message> {
[INFO] [stdout]      |                              ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2759 |     fn view_terminal_content(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2813:24
[INFO] [stdout]      |
[INFO] [stdout] 2813 |     fn view_status_bar(&self) -> Element<Message> {
[INFO] [stdout]      |                        ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2813 |     fn view_status_bar(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bell`
[INFO] [stdout]    --> src/sound.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let bell = BellSound::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_bell`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_modifiers` and `keybindings` are never read
[INFO] [stdout]    --> src/main.rs:459:5
[INFO] [stdout]     |
[INFO] [stdout] 419 | struct AgTerm {
[INFO] [stdout]     |        ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 459 |     current_modifiers: Modifiers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     keybindings: KeyBindings,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HorizontalSplit` and `VerticalSplit` are never constructed
[INFO] [stdout]    --> src/main.rs:681:5
[INFO] [stdout]     |
[INFO] [stdout] 677 | enum PaneLayout {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 681 |     HorizontalSplit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 682 |     /// Vertical split (left/right)
[INFO] [stdout] 683 |     VerticalSplit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PaneLayout` 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 `screen`, `parsed_line_cache`, and `canvas_state` are never read
[INFO] [stdout]    --> src/main.rs:689:5
[INFO] [stdout]     |
[INFO] [stdout] 687 | struct Pane {
[INFO] [stdout]     |        ---- fields in this struct
[INFO] [stdout] 688 |     /// Screen buffer for this pane
[INFO] [stdout] 689 |     screen: TerminalScreen,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     parsed_line_cache: Vec<Vec<StyledSpan>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     canvas_state: TerminalCanvasState,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/main.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 704 | impl Pane {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 705 |     /// Create a new pane with given dimensions
[INFO] [stdout] 706 |     fn new(cols: usize, rows: usize, pty_id: Option<uuid::Uuid>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tab_index` and `position` are never read
[INFO] [stdout]    --> src/main.rs:741:5
[INFO] [stdout]     |
[INFO] [stdout] 740 | struct TabContextMenu {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 741 |     tab_index: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 742 |     position: (f32, f32),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TabContextMenu` 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 `title_info`, `pane_layout`, `panes`, and `focused_pane` are never read
[INFO] [stdout]    --> src/main.rs:783:5
[INFO] [stdout]     |
[INFO] [stdout] 746 | struct TerminalTab {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 783 |     title_info: terminal::title::TitleInfo,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 790 |     pane_layout: PaneLayout,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 791 |     /// Panes within this tab (empty if using legacy single-pane mode)
[INFO] [stdout] 792 |     panes: Vec<Pane>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 793 |     /// Index of the focused pane
[INFO] [stdout] 794 |     focused_pane: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/main.rs:828:5
[INFO] [stdout]     |
[INFO] [stdout] 825 | enum Message {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 828 |     NewSshTab(ssh::SshProfile),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 897 |     TabDragStart(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 898 |     TabDragMove(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 899 |     TabDragEnd,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 902 |     TabContextMenu(usize, f32, f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 903 |     CloseContextMenu,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 904 |     TabRenameStart(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 905 |     TabRenameInput(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 906 |     TabRenameSubmit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 907 |     TabRenameCancel,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 913 |     HistorySearchPrev,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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_history` and `clear_history` are never used
[INFO] [stdout]    --> src/completion.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl CompletionEngine {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn get_history(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn clear_history(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `shift` and `ctrl_shift` are never used
[INFO] [stdout]    --> src/config/mod.rs:581:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn ctrl_shift() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `load_keybindings`, `save_keybindings`, and `reset_to_defaults` are never used
[INFO] [stdout]    --> src/config/mod.rs:806:12
[INFO] [stdout]     |
[INFO] [stdout] 627 | impl KeybindingsConfig {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 806 |     pub fn load_keybindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 848 |     pub fn save_keybindings(bindings: &[KeyBinding]) -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 891 |     pub fn reset_to_defaults() -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_pty_environment` is never used
[INFO] [stdout]    --> src/config/mod.rs:990:12
[INFO] [stdout]     |
[INFO] [stdout] 988 | impl EnvironmentConfig {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] 989 |     /// Convert to PtyEnvironment for PTY session creation
[INFO] [stdout] 990 |     pub fn to_pty_environment(&self) -> crate::terminal::pty::PtyEnvironment {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load`, `save`, `delete`, `list`, and `create_default_profiles` are never used
[INFO] [stdout]     --> src/config/mod.rs:1749:12
[INFO] [stdout]      |
[INFO] [stdout] 1723 | impl Profile {
[INFO] [stdout]      | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1749 |     pub fn load(name: &str) -> Result<Self, ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1769 |     pub fn save(&self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1788 |     pub fn delete(name: &str) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1806 |     pub fn list() -> Result<Vec<String>, ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1835 |     pub fn create_default_profiles() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `load_from_file`, `save_to_file`, and `initialize_default_file` are never used
[INFO] [stdout]     --> src/config/mod.rs:1953:12
[INFO] [stdout]      |
[INFO] [stdout] 1931 | impl Snippet {
[INFO] [stdout]      | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1953 |     pub fn load_from_file() -> Result<Vec<Snippet>, ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1979 |     pub fn save_to_file(snippets: &[Snippet]) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2160 |     pub fn initialize_default_file() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `save_to_file` and `initialize_default_file` are never used
[INFO] [stdout]     --> src/config/mod.rs:2327:12
[INFO] [stdout]      |
[INFO] [stdout] 2280 | impl Hook {
[INFO] [stdout]      | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2327 |     pub fn save_to_file(hooks: &[Hook]) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2405 |     pub fn initialize_default_file() -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save` and `reload` are never used
[INFO] [stdout]     --> src/config/mod.rs:2597:12
[INFO] [stdout]      |
[INFO] [stdout] 2544 | impl HookManager {
[INFO] [stdout]      | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2597 |     pub fn save(&self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2602 |     pub fn reload(&mut self) -> Result<(), ConfigError> {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OscSequence`, `EscapeSequence`, and `TabClosed` are never constructed
[INFO] [stdout]   --> src/debug/event_log.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum EventType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     OscSequence(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 25 |     /// Escape sequence received (description)
[INFO] [stdout] 26 |     EscapeSequence(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     TabClosed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventType` 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 `filter` is never used
[INFO] [stdout]    --> src/debug/event_log.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl EventLog {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn filter(&self) -> Option<&Vec<EventType>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `search_position`, `clear`, and `is_empty` are never used
[INFO] [stdout]    --> src/history.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl HistoryManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn search_position(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/keybind.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl Action {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_iced_key` is never used
[INFO] [stdout]    --> src/keybind.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl KeyBindings {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn from_iced_key(key: &Key, modifiers: &Modifiers) -> Option<KeyCombo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `alt`, `shift`, `alt_shift`, `from_config`, and `is_any` are never used
[INFO] [stdout]    --> src/keybind.rs:301:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn alt() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn alt_shift() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn from_config(config: &ConfigKeyModifiers) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn is_any(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAction` is never constructed
[INFO] [stdout]   --> src/macros.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum MacroError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     InvalidAction(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MacroError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `none`, `ctrl`, `alt`, `shift`, `cmd`, and `ctrl_alt` are never used
[INFO] [stdout]    --> src/macros.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl KeyModifiers {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  62 |     /// Create modifiers with no keys pressed
[INFO] [stdout]  63 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn ctrl() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn alt() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn shift() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn cmd() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn ctrl_alt() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/macros.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl KeyEvent {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 164 |     /// Create a new key event
[INFO] [stdout] 165 |     pub fn new(key: String, modifiers: KeyModifiers) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mut`, `list`, `recording_state`, `record_key`, and `clear` are never used
[INFO] [stdout]    --> src/macros.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | impl MacroEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn get_mut(&mut self, name: &str) -> Option<&mut Macro> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn list(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub fn recording_state(&self) -> Option<&RecordingState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn record_key(&mut self, key_event: KeyEvent) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]    --> src/macros.rs:562:12
[INFO] [stdout]     |
[INFO] [stdout] 562 |     pub fn run_command(cmd: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_secs` is never used
[INFO] [stdout]    --> src/macros.rs:572:12
[INFO] [stdout]     |
[INFO] [stdout] 572 |     pub fn wait_secs(secs: u64) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_macro` is never used
[INFO] [stdout]    --> src/macros.rs:590:12
[INFO] [stdout]     |
[INFO] [stdout] 590 |     pub fn call_macro(name: impl Into<String>) -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_enter` is never used
[INFO] [stdout]    --> src/macros.rs:608:12
[INFO] [stdout]     |
[INFO] [stdout] 608 |     pub fn send_enter() -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_escape` is never used
[INFO] [stdout]    --> src/macros.rs:616:12
[INFO] [stdout]     |
[INFO] [stdout] 616 |     pub fn send_escape() -> MacroAction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `duration` is never used
[INFO] [stdout]    --> src/mouse_actions.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl DragState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn duration(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_click_detector` is never used
[INFO] [stdout]    --> src/mouse_actions.rs:531:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl MouseHandler {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn reset_click_detector(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `auto_save_path` is never used
[INFO] [stdout]    --> src/session.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl SessionData {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn auto_save_path() -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_filtered_env_vars` is never used
[INFO] [stdout]    --> src/session.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl TabState {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn get_filtered_env_vars() -> Vec<(String, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/shell.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ShellInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub version: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShellInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_version` is never used
[INFO] [stdout]    --> src/shell.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl ShellInfo {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn get_version(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_available` is never used
[INFO] [stdout]   --> src/sound.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl BellSound {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_ssh_config` is never used
[INFO] [stdout]    --> src/ssh.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl SshProfile {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn from_ssh_config(hostname: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load_from_ssh_config` is never used
[INFO] [stdout]    --> src/ssh.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl SshProfileManager {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn load_from_ssh_config() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ssh_config_path` is never used
[INFO] [stdout]    --> src/ssh.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn ssh_config_path() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mark_lines` is never used
[INFO] [stdout]   --> src/terminal/screen.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl DirtyTracker {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn mark_lines(&mut self, lines: impl Iterator<Item = usize>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Sixel`, `Kitty`, and `ITerm2` are never constructed
[INFO] [stdout]    --> src/terminal/screen.rs:296:5
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum ImageProtocol {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 295 |     /// Sixel graphics (DEC VT340+)
[INFO] [stdout] 296 |     Sixel,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 297 |     /// Kitty graphics protocol
[INFO] [stdout] 298 |     Kitty,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 299 |     /// iTerm2 inline images protocol
[INFO] [stdout] 300 |     ITerm2,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageProtocol` 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 `width`, `height`, `data`, `protocol`, and `id` are never read
[INFO] [stdout]    --> src/terminal/screen.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct ImageData {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 306 |     /// Image width in pixels
[INFO] [stdout] 307 |     pub width: u32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 308 |     /// Image height in pixels
[INFO] [stdout] 309 |     pub height: u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 310 |     /// Raw image data (protocol-specific format)
[INFO] [stdout] 311 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 312 |     /// Protocol used for this image
[INFO] [stdout] 313 |     pub protocol: ImageProtocol,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 314 |     /// Image ID for tracking (protocol-specific)
[INFO] [stdout] 315 |     pub id: Option<u32>,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageData` 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 items `new`, `with_id`, `exceeds_size_limit`, and `memory_size` are never used
[INFO] [stdout]    --> src/terminal/screen.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl ImageData {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 319 |     /// Create a new image data instance
[INFO] [stdout] 320 |     pub fn new(width: u32, height: u32, data: Vec<u8>, protocol: ImageProtocol) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn with_id(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn exceeds_size_limit(&self, max_size_bytes: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn memory_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dirty_tracker_mut`, `memory_stats`, `memory_usage_string`, and `cleanup_interner` are never used
[INFO] [stdout]     --> src/terminal/screen.rs:1051:12
[INFO] [stdout]      |
[INFO] [stdout]  671 | impl TerminalScreen {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1051 |     pub fn dirty_tracker_mut(&mut self) -> &mut DirtyTracker {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1207 |     pub fn memory_stats(&self) -> MemoryStats {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1239 |     pub fn memory_usage_string(&self) -> String {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1244 |     pub fn cleanup_interner(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `memory_usage` is never used
[INFO] [stdout]   --> src/terminal/screen/memory.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl StringInterner {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn memory_usage(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cell_memory_size` is never used
[INFO] [stdout]    --> src/terminal/screen/memory.rs:193:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub fn cell_memory_size(cell: &super::Cell) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_memory_size` is never used
[INFO] [stdout]    --> src/terminal/screen/memory.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn line_memory_size(line: &[super::Cell]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `save_to_file` is never read
[INFO] [stdout]   --> src/terminal/screen/scrollback.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct ScrollbackConfig {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub save_to_file: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScrollbackConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/terminal/screen/scrollback.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl ScrollbackBuffer {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_compressed(&self, index: usize) -> Option<&CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn uncompressed_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn compressed_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn config(&self) -> &ScrollbackConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn search_case_sensitive(&self, pattern: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn iter(&self) -> impl Iterator<Item = &CompressedLine> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn clone_lines(&self) -> VecDeque<CompressedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn restore_from(&mut self, lines: VecDeque<CompressedLine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toggle_regex`, `toggle_case_sensitive`, `current`, `clear`, and `is_current_match_at` are never used
[INFO] [stdout]    --> src/terminal/search.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl SearchState {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn toggle_regex(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn toggle_case_sensitive(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn current(&self) -> Option<&SearchMatch> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_current_match_at(&self, line: usize, col: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cwd`, `window_title`, `icon_title`, and `current_command` are never used
[INFO] [stdout]    --> src/terminal/title.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl TitleInfo {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn cwd(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn window_title(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn icon_title(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn current_command(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_link` is never used
[INFO] [stdout]   --> src/terminal/url.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn open_link(link: &LinkType) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_frame_time` and `last_lines_rendered` are never read
[INFO] [stdout]    --> src/terminal_canvas.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct TerminalCanvasState {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 186 |     last_frame_time: Option<Duration>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 187 |     #[cfg(debug_assertions)]
[INFO] [stdout] 188 |     last_lines_rendered: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_rgb_float` is never used
[INFO] [stdout]    --> src/theme.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl ColorDef {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn from_rgb_float(r: f32, g: f32, b: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_toml_str`, `from_toml_file`, and `to_toml_file` are never used
[INFO] [stdout]    --> src/theme.rs:665:12
[INFO] [stdout]     |
[INFO] [stdout] 663 | impl Theme {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 664 |     /// Load theme from TOML string
[INFO] [stdout] 665 |     pub fn from_toml_str(toml_str: &str) -> Result<Self, toml::de::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn from_toml_file(path: &std::path::Path) -> std::io::Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub fn to_toml_file(&self, path: &std::path::Path) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status_bar_style` and `primary_background_style` are never used
[INFO] [stdout]    --> src/theme.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 709 | impl Theme {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 710 |     /// Container style for status bar
[INFO] [stdout] 711 |     pub fn status_bar_style(&self) -> impl Fn(&iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 727 |     pub fn primary_background_style(&self) -> impl Fn(&iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/trigger.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl TriggerManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn get(&self, name: &str) -> Option<&Trigger> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SelectItem` is never constructed
[INFO] [stdout]   --> src/ui/palette.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum PaletteMessage {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     SelectItem(usize),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PaletteMessage` 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: function `status_bar_style` is never used
[INFO] [stdout]    --> src/main.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn status_bar_style(_theme: &iced::Theme) -> container::Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2488:13
[INFO] [stdout]      |
[INFO] [stdout] 2488 |     fn view(&self) -> Element<Message> {
[INFO] [stdout]      |             ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |             |
[INFO] [stdout]      |             the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2488 |     fn view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2588:21
[INFO] [stdout]      |
[INFO] [stdout] 2588 |     fn view_tab_bar(&self) -> Element<Message> {
[INFO] [stdout]      |                     ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2588 |     fn view_tab_bar(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2759:30
[INFO] [stdout]      |
[INFO] [stdout] 2759 |     fn view_terminal_content(&self) -> Element<Message> {
[INFO] [stdout]      |                              ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2759 |     fn view_terminal_content(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/main.rs:2813:24
[INFO] [stdout]      |
[INFO] [stdout] 2813 |     fn view_status_bar(&self) -> Element<Message> {
[INFO] [stdout]      |                        ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2813 |     fn view_status_bar(&self) -> Element<'_, Message> {
[INFO] [stdout]      |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Task` that must be used
[INFO] [stdout]     --> src/main.rs:3253:9
[INFO] [stdout]      |
[INFO] [stdout] 3253 |         app.update(Message::IncreaseFontSize);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Task` must be returned to the runtime to take effect; normally in your `update` or `new` functions.
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3253 |         let _ = app.update(Message::IncreaseFontSize);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Task` that must be used
[INFO] [stdout]     --> src/main.rs:3258:9
[INFO] [stdout]      |
[INFO] [stdout] 3258 |         app.update(Message::IncreaseFontSize);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Task` must be returned to the runtime to take effect; normally in your `update` or `new` functions.
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3258 |         let _ = app.update(Message::IncreaseFontSize);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Task` that must be used
[INFO] [stdout]     --> src/main.rs:3267:9
[INFO] [stdout]      |
[INFO] [stdout] 3267 |         app.update(Message::DecreaseFontSize);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Task` must be returned to the runtime to take effect; normally in your `update` or `new` functions.
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3267 |         let _ = app.update(Message::DecreaseFontSize);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Task` that must be used
[INFO] [stdout]     --> src/main.rs:3272:9
[INFO] [stdout]      |
[INFO] [stdout] 3272 |         app.update(Message::DecreaseFontSize);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Task` must be returned to the runtime to take effect; normally in your `update` or `new` functions.
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3272 |         let _ = app.update(Message::DecreaseFontSize);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Task` that must be used
[INFO] [stdout]     --> src/main.rs:3281:9
[INFO] [stdout]      |
[INFO] [stdout] 3281 |         app.update(Message::ResetFontSize);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Task` must be returned to the runtime to take effect; normally in your `update` or `new` functions.
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 3281 |         let _ = app.update(Message::ResetFontSize);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 04s
[INFO] running `Command { std: "docker" "inspect" "183c19ef7ad0b52de744754737b621a52d21da7961ef36a211c7bbe74e7c7e17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "183c19ef7ad0b52de744754737b621a52d21da7961ef36a211c7bbe74e7c7e17", kill_on_drop: false }`
[INFO] [stdout] 183c19ef7ad0b52de744754737b621a52d21da7961ef36a211c7bbe74e7c7e17
