[INFO] cloning repository https://github.com/JohanChane/demotui
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JohanChane/demotui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohanChane%2Fdemotui", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohanChane%2Fdemotui'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac65841ad99cfda3da198bd0e1a7a4bfa9a02c34
[INFO] checking JohanChane/demotui against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohanChane%2Fdemotui" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JohanChane/demotui
[INFO] finished tweaking git repo https://github.com/JohanChane/demotui
[INFO] tweaked toml for git repo https://github.com/JohanChane/demotui written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JohanChane/demotui on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JohanChane/demotui 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:90:12
[INFO] [stderr]    |
[INFO] [stderr] 90 | homepage = "https://github.com/yourusername/demotui"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 | repository = "https://github.com/yourusername/demotui"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `demotui` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_complete v4.5.61
[INFO] [stderr]   Downloaded minreq v2.14.1
[INFO] [stderr]   Downloaded instability v0.3.10
[INFO] [stderr]   Downloaded libyml v0.0.5
[INFO] [stderr]   Downloaded serde_yml v0.0.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4
[INFO] running `Command { std: "docker" "start" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:90:12
[INFO] [stderr]    |
[INFO] [stderr] 90 | homepage = "https://github.com/yourusername/demotui"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 | repository = "https://github.com/yourusername/demotui"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `demotui` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling signal-hook v0.4.4
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling serde_yml v0.0.12
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking indexmap v2.12.1
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking libyml v0.0.5
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]    Compiling demotui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking tempfile v3.25.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking self-replace v1.5.0
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking clap_complete v4.5.61
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking minreq v2.14.1
[INFO] [stderr]     Checking signal-hook-tokio v0.4.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stdout] warning: unused imports: `Confirm` and `Select`
[INFO] [stdout]  --> src/cli.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use widgets::{Confirm, Select};
[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: `utils::*`
[INFO] [stdout]  --> src/tui.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use utils::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::input::InputMasked`
[INFO] [stdout]   --> src/tui/popmsg/mod.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub use super::input::InputMasked;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tui::Key as TuiKey`
[INFO] [stdout]  --> src/tui/tab/mod.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub use crate::tui::Key as TuiKey;
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/connections.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | / mod_agent!(
[INFO] [stdout]  11 | |     Key,
[INFO] [stdout]  12 | |     [
[INFO] [stdout]  13 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...   |
[INFO] [stdout]  33 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/files/profile.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout]  89 | / mod_agent!(
[INFO] [stdout]  90 | |     Key,
[INFO] [stdout]  91 | |     [
[INFO] [stdout]  92 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/files/template.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | / mod_agent!(
[INFO] [stdout]   9 | |     Key,
[INFO] [stdout]  10 | |     [
[INFO] [stdout]  11 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...   |
[INFO] [stdout]  29 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/logs.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout]  13 | / mod_agent!(
[INFO] [stdout]  14 | |     Key,
[INFO] [stdout]  15 | |     [
[INFO] [stdout]  16 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...   |
[INFO] [stdout]  32 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/proxies.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | / mod_agent!(
[INFO] [stdout]  12 | |     Key,
[INFO] [stdout]  13 | |     [
[INFO] [stdout]  14 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...   |
[INFO] [stdout]  37 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/settings.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / mod_agent!(
[INFO] [stdout]  13 | |     SettingsKey,
[INFO] [stdout]  14 | |     [
[INFO] [stdout]  15 | |         ([KeyCode::Enter], SettingsKey::Execute, "Apply"),
[INFO] [stdout] ...   |
[INFO] [stdout]  22 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/srvctl.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | / mod_agent!(
[INFO] [stdout]   9 | |     SrvCtlKey,
[INFO] [stdout]  10 | |     [
[INFO] [stdout]  11 | |         ([KeyCode::Enter], SrvCtlKey::Execute, "Execute"),
[INFO] [stdout] ...   |
[INFO] [stdout]  18 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `tri`
[INFO] [stdout]   --> src/tui/tab/srvctl.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 | macro_rules! tri {
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Confirm` and `Select`
[INFO] [stdout]  --> src/cli.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use widgets::{Confirm, Select};
[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: `utils::*`
[INFO] [stdout]  --> src/tui.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use utils::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::input::InputMasked`
[INFO] [stdout]   --> src/tui/popmsg/mod.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub use super::input::InputMasked;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tui::Key as TuiKey`
[INFO] [stdout]  --> src/tui/tab/mod.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub use crate::tui::Key as TuiKey;
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/connections.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | / mod_agent!(
[INFO] [stdout]  11 | |     Key,
[INFO] [stdout]  12 | |     [
[INFO] [stdout]  13 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...   |
[INFO] [stdout]  33 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/files/profile.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout]  89 | / mod_agent!(
[INFO] [stdout]  90 | |     Key,
[INFO] [stdout]  91 | |     [
[INFO] [stdout]  92 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/files/template.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | / mod_agent!(
[INFO] [stdout]   9 | |     Key,
[INFO] [stdout]  10 | |     [
[INFO] [stdout]  11 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...   |
[INFO] [stdout]  29 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/logs.rs:13:1
[INFO] [stdout]     |
[INFO] [stdout]  13 | / mod_agent!(
[INFO] [stdout]  14 | |     Key,
[INFO] [stdout]  15 | |     [
[INFO] [stdout]  16 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...   |
[INFO] [stdout]  32 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/settings.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / mod_agent!(
[INFO] [stdout]  13 | |     SettingsKey,
[INFO] [stdout]  14 | |     [
[INFO] [stdout]  15 | |         ([KeyCode::Enter], SettingsKey::Execute, "Apply"),
[INFO] [stdout] ...   |
[INFO] [stdout]  22 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_shortcuts`
[INFO] [stdout]    --> src/tui/tab/mod.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout]  46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 169 |   pub use agent::{agent, all_shortcuts};
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tui/tab/srvctl.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | / mod_agent!(
[INFO] [stdout]   9 | |     SrvCtlKey,
[INFO] [stdout]  10 | |     [
[INFO] [stdout]  11 | |         ([KeyCode::Enter], SrvCtlKey::Execute, "Execute"),
[INFO] [stdout] ...   |
[INFO] [stdout]  18 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `tri`
[INFO] [stdout]   --> src/tui/tab/srvctl.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 | macro_rules! tri {
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut data: ProfileManager = ProfileManager::from_file()?;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut data: ProfileManager = ProfileManager::from_file()?;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `has_net_updates` is assigned to, but never used
[INFO] [stdout]    --> src/tui/tab/files/profile.rs:701:17
[INFO] [stdout]     |
[INFO] [stdout] 701 |             let mut has_net_updates = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_has_net_updates` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_net_updates` is never read
[INFO] [stdout]    --> src/tui/tab/files/profile.rs:708:29
[INFO] [stdout]     |
[INFO] [stdout] 708 | ...                   has_net_updates = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/tui/tab/files/template.rs:349:22
[INFO] [stdout]     |
[INFO] [stdout] 349 |     async fn preview(name: String) -> CB {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tui/agent.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 286 |     let mut value: serde_yml::Mapping = serde_yml::from_str(yaml).unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tui/agent.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let mut value: serde_yml::Mapping = serde_yml::from_str(yaml).unwrap();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ProfileCommand` is more private than the item `cli::ArgCommand::Profile::command`
[INFO] [stdout]    --> src/cli.rs:90:9
[INFO] [stdout]     |
[INFO] [stdout]  90 |         command: ProfileCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Profile::command` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ProfileCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:177:1
[INFO] [stdout]     |
[INFO] [stdout] 177 | enum ProfileCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ServiceCommand` is more private than the item `cli::ArgCommand::Service::command`
[INFO] [stdout]    --> src/cli.rs:96:9
[INFO] [stdout]     |
[INFO] [stdout]  96 |         command: ServiceCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Service::command` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ServiceCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:217:1
[INFO] [stdout]     |
[INFO] [stdout] 217 | enum ServiceCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ModeCommand` is more private than the item `cli::ArgCommand::Mode::mode`
[INFO] [stdout]    --> src/cli.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         mode: Option<ModeCommand>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Mode::mode` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ModeCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:141:1
[INFO] [stdout]     |
[INFO] [stdout] 141 | enum ModeCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::Target` is more private than the item `cli::ArgCommand::Update::target`
[INFO] [stdout]    --> src/cli.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |         target: Target,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ field `cli::ArgCommand::Update::target` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::Target` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:132:1
[INFO] [stdout]     |
[INFO] [stdout] 132 | enum Target {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `OldVersion` is more private than the item `cli::ArgCommand::Migrate::version`
[INFO] [stdout]    --> src/cli.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         version: OldVersion,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Migrate::version` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `OldVersion` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum OldVersion {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TabbarDef` is more private than the item `ThemeFile::tabbar`
[INFO] [stdout]   --> src/tui/theme.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub tabbar: TabbarDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::tabbar` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TabbarDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct TabbarDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PopupDef` is more private than the item `ThemeFile::popup`
[INFO] [stdout]   --> src/tui/theme.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub popup: PopupDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ field `ThemeFile::popup` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `PopupDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct PopupDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::default`
[INFO] [stdout]   --> src/tui/theme.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub default: SectionPaletteDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::default` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::connections`
[INFO] [stdout]   --> src/tui/theme.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub connections: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::connections` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::proxies`
[INFO] [stdout]   --> src/tui/theme.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub proxies: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::proxies` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::settings`
[INFO] [stdout]   --> src/tui/theme.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub settings: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::settings` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::srvctl`
[INFO] [stdout]   --> src/tui/theme.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub srvctl: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::srvctl` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::logs`
[INFO] [stdout]   --> src/tui/theme.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub logs: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::logs` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SectionPaletteDef` is more private than the item `ThemeFile::status`
[INFO] [stdout]   --> src/tui/theme.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub status: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThemeFile::status` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Confirm` is never constructed
[INFO] [stdout]  --> src/cli/widgets.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Confirm {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `append_prompt` and `interact` are never used
[INFO] [stdout]   --> src/cli/widgets.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Confirm {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  9 |     pub fn append_prompt<S: ToString>(mut self, prompt: S) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn interact(self) -> std::io::Result<bool> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Select` is never constructed
[INFO] [stdout]   --> src/cli/widgets.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Select<It> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `append_items`, `append_start_prompt`, `set_end_prompt`, and `interact` are never used
[INFO] [stdout]   --> src/cli/widgets.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl<It: Display> Select<It> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] 59 |     pub fn append_items<I: Iterator<Item = It>>(mut self, items: I) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn append_start_prompt<S: ToString>(mut self, prompt: S) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn set_end_prompt<S: Display>(mut self, prompt: S) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn interact(self) -> std::io::Result<Option<It>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `provider_cache_path` is never used
[INFO] [stdout]    --> src/config.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn provider_cache_path() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG_FILE` is never used
[INFO] [stdout]  --> src/config/util.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const LOG_FILE: &str = "clashtui.log";
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROVIDER_CACHE_DIR` is never used
[INFO] [stdout]   --> src/config/util.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const PROVIDER_CACHE_DIR: &str = "providers";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `all` is never used
[INFO] [stdout]    --> src/config/database.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl ProfileManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn all(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restart_core_service` is never used
[INFO] [stdout]    --> src/functions/command.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn restart_core_service(password: Option<&str>, core_type: CoreType) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `correct_cap_for_tun` is never used
[INFO] [stdout]  --> src/functions/command/linux.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn correct_cap_for_tun() -> Result<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_as_su_by_sudo` is never used
[INFO] [stdout]    --> src/functions/command/linux.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn run_as_su_by_sudo(pgm: &str, args: &[&str]) -> Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SUPPORTED_TEMPLATE_VERSION` is never used
[INFO] [stdout]   --> src/functions/file.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_SUPPORTED_TEMPLATE_VERSION: u64 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/functions/file/net_resource.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NetResourceUpdate {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetResourceUpdate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/functions/file/profile/profile.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct LocalProfile {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocalProfile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_template` is never used
[INFO] [stdout]    --> src/functions/file/template.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn create_template(path: String) -> anyhow::Result<Option<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PGitem` is never constructed
[INFO] [stdout]  --> src/functions/file/template/version1.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct PGitem {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interval_to_duration` is never used
[INFO] [stdout]   --> src/functions/file/template/singbox.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn interval_to_duration(seconds: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_USER_AGENT` is never used
[INFO] [stdout]   --> src/functions/restful.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const DEFAULT_USER_AGENT: &str = "github.com/JohanChane/clashtui";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_connectivity` is never used
[INFO] [stdout]   --> src/functions/restful.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn check_connectivity() -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `alive`, `extra`, and `provider_name` are never read
[INFO] [stdout]   --> src/functions/restful/proxies.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Proxy {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 31 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub alive: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub extra: IndexMap<String, DelayInfo>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub provider_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Proxy` 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 `alive` and `history` are never read
[INFO] [stdout]   --> src/functions/restful/proxies.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct DelayInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 76 |     pub alive: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 77 |     pub history: Vec<DelayRecord>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DelayInfo` 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 `get_proxy` is never used
[INFO] [stdout]   --> src/functions/restful/proxies.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_proxy(name: &str) -> Result<Proxy> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `rule_payload` are never read
[INFO] [stdout]    --> src/functions/restful.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub struct Conn {
[INFO] [stdout]     |                ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 269 |         pub start: String,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |         pub rule_payload: Option<String>,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/functions/restful.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub struct ConnMetaData {
[INFO] [stdout]     |                ------------ fields in this struct
[INFO] [stdout] 281 |         pub network: String,
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 282 |         #[serde(rename = "type", default)]
[INFO] [stdout] 283 |         pub ctype: String,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |         pub process: String,
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 287 |         #[serde(default)]
[INFO] [stdout] 288 |         pub process_path: String,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |         pub source_ip: String,
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] 292 |         pub source_port: String,
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |         pub sniff_host: Option<String>,
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_log_entries` is never used
[INFO] [stdout]    --> src/functions/restful.rs:391:12
[INFO] [stdout]     |
[INFO] [stdout] 391 |     pub fn parse_log_entries(body: &str) -> Vec<LogEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_logs` is never used
[INFO] [stdout]    --> src/functions/restful.rs:420:12
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_logs(level: Option<&str>) -> Result<Vec<LogEntry>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get` is never used
[INFO] [stdout]    --> src/tui/agent.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub fn get(value: &mut serde_yml::Mapping, idx: &str) -> Result<serde_yml::Mapping> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TestAction` is never used
[INFO] [stdout]    --> src/tui/agent.rs:478:6
[INFO] [stdout]     |
[INFO] [stdout] 478 | enum TestAction {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/connections.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / mod_agent!(
[INFO] [stdout] 11 | |     Key,
[INFO] [stdout] 12 | |     [
[INFO] [stdout] 13 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/files/template.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / mod_agent!(
[INFO] [stdout]  9 | |     Key,
[INFO] [stdout] 10 | |     [
[INFO] [stdout] 11 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/logs.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | / mod_agent!(
[INFO] [stdout] 14 | |     Key,
[INFO] [stdout] 15 | |     [
[INFO] [stdout] 16 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 32 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/proxies.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / mod_agent!(
[INFO] [stdout] 12 | |     Key,
[INFO] [stdout] 13 | |     [
[INFO] [stdout] 14 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/settings.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / mod_agent!(
[INFO] [stdout] 13 | |     SettingsKey,
[INFO] [stdout] 14 | |     [
[INFO] [stdout] 15 | |         ([KeyCode::Enter], SettingsKey::Execute, "Apply"),
[INFO] [stdout] ...  |
[INFO] [stdout] 22 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spawn_current_status_check` is never used
[INFO] [stdout]    --> src/tui/tab/srvctl.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl SrvCtlContent {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn spawn_current_status_check(&self, task_set: &mut FutureSet<Self>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/srvctl.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / mod_agent!(
[INFO] [stdout]  9 | |     SrvCtlKey,
[INFO] [stdout] 10 | |     [
[INFO] [stdout] 11 | |         ([KeyCode::Enter], SrvCtlKey::Execute, "Execute"),
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/tui/theme.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub(crate) struct ComputedSectionTheme {
[INFO] [stdout]    |                   -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub title: Style,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ComputedSectionTheme` 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: variable `has_net_updates` is assigned to, but never used
[INFO] [stdout]    --> src/tui/tab/files/profile.rs:701:17
[INFO] [stdout]     |
[INFO] [stdout] 701 |             let mut has_net_updates = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_has_net_updates` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_net_updates` is never read
[INFO] [stdout]    --> src/tui/tab/files/profile.rs:708:29
[INFO] [stdout]     |
[INFO] [stdout] 708 | ...                   has_net_updates = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/tui/tab/files/template.rs:349:22
[INFO] [stdout]     |
[INFO] [stdout] 349 |     async fn preview(name: String) -> CB {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ProfileCommand` is more private than the item `cli::ArgCommand::Profile::command`
[INFO] [stdout]    --> src/cli.rs:90:9
[INFO] [stdout]     |
[INFO] [stdout]  90 |         command: ProfileCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Profile::command` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ProfileCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:177:1
[INFO] [stdout]     |
[INFO] [stdout] 177 | enum ProfileCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ServiceCommand` is more private than the item `cli::ArgCommand::Service::command`
[INFO] [stdout]    --> src/cli.rs:96:9
[INFO] [stdout]     |
[INFO] [stdout]  96 |         command: ServiceCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Service::command` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ServiceCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:217:1
[INFO] [stdout]     |
[INFO] [stdout] 217 | enum ServiceCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::ModeCommand` is more private than the item `cli::ArgCommand::Mode::mode`
[INFO] [stdout]    --> src/cli.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         mode: Option<ModeCommand>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Mode::mode` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::ModeCommand` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:141:1
[INFO] [stdout]     |
[INFO] [stdout] 141 | enum ModeCommand {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cli::Target` is more private than the item `cli::ArgCommand::Update::target`
[INFO] [stdout]    --> src/cli.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |         target: Target,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ field `cli::ArgCommand::Update::target` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cli::Target` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:132:1
[INFO] [stdout]     |
[INFO] [stdout] 132 | enum Target {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `OldVersion` is more private than the item `cli::ArgCommand::Migrate::version`
[INFO] [stdout]    --> src/cli.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         version: OldVersion,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ field `cli::ArgCommand::Migrate::version` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `OldVersion` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cli.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum OldVersion {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TabbarDef` is more private than the item `theme::ThemeFile::tabbar`
[INFO] [stdout]   --> src/tui/theme.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub tabbar: TabbarDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::tabbar` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TabbarDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct TabbarDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PopupDef` is more private than the item `theme::ThemeFile::popup`
[INFO] [stdout]   --> src/tui/theme.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub popup: PopupDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::popup` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `PopupDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct PopupDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::default`
[INFO] [stdout]   --> src/tui/theme.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub default: SectionPaletteDef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::default` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::connections`
[INFO] [stdout]   --> src/tui/theme.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub connections: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::connections` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::proxies`
[INFO] [stdout]   --> src/tui/theme.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub proxies: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::proxies` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::settings`
[INFO] [stdout]   --> src/tui/theme.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub settings: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::settings` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::srvctl`
[INFO] [stdout]   --> src/tui/theme.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub srvctl: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::srvctl` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::logs`
[INFO] [stdout]   --> src/tui/theme.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub logs: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::logs` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `theme::SectionPaletteDef` is more private than the item `theme::ThemeFile::status`
[INFO] [stdout]   --> src/tui/theme.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub status: Option<SectionPaletteDef>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `theme::ThemeFile::status` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `theme::SectionPaletteDef` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/tui/theme.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct SectionPaletteDef {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Confirm` is never constructed
[INFO] [stdout]  --> src/cli/widgets.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Confirm {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `append_prompt` and `interact` are never used
[INFO] [stdout]   --> src/cli/widgets.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Confirm {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  9 |     pub fn append_prompt<S: ToString>(mut self, prompt: S) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn interact(self) -> std::io::Result<bool> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `provider_cache_path` is never used
[INFO] [stdout]    --> src/config.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn provider_cache_path() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG_FILE` is never used
[INFO] [stdout]  --> src/config/util.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const LOG_FILE: &str = "clashtui.log";
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROVIDER_CACHE_DIR` is never used
[INFO] [stdout]   --> src/config/util.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const PROVIDER_CACHE_DIR: &str = "providers";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `all` is never used
[INFO] [stdout]    --> src/config/database.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl ProfileManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn all(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restart_core_service` is never used
[INFO] [stdout]    --> src/functions/command.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn restart_core_service(password: Option<&str>, core_type: CoreType) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `correct_cap_for_tun` is never used
[INFO] [stdout]  --> src/functions/command/linux.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn correct_cap_for_tun() -> Result<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_as_su_by_sudo` is never used
[INFO] [stdout]    --> src/functions/command/linux.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn run_as_su_by_sudo(pgm: &str, args: &[&str]) -> Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SUPPORTED_TEMPLATE_VERSION` is never used
[INFO] [stdout]   --> src/functions/file.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_SUPPORTED_TEMPLATE_VERSION: u64 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/functions/file/net_resource.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NetResourceUpdate {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetResourceUpdate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/functions/file/profile/profile.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct LocalProfile {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocalProfile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_template` is never used
[INFO] [stdout]    --> src/functions/file/template.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn create_template(path: String) -> anyhow::Result<Option<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PGitem` is never constructed
[INFO] [stdout]  --> src/functions/file/template/version1.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct PGitem {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interval_to_duration` is never used
[INFO] [stdout]   --> src/functions/file/template/singbox.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn interval_to_duration(seconds: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_USER_AGENT` is never used
[INFO] [stdout]   --> src/functions/restful.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const DEFAULT_USER_AGENT: &str = "github.com/JohanChane/clashtui";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_connectivity` is never used
[INFO] [stdout]   --> src/functions/restful.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn check_connectivity() -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `alive`, `extra`, and `provider_name` are never read
[INFO] [stdout]   --> src/functions/restful/proxies.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Proxy {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 31 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub alive: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub extra: IndexMap<String, DelayInfo>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub provider_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Proxy` 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 `alive` and `history` are never read
[INFO] [stdout]   --> src/functions/restful/proxies.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct DelayInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 76 |     pub alive: bool,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 77 |     pub history: Vec<DelayRecord>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DelayInfo` 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 `get_proxy` is never used
[INFO] [stdout]   --> src/functions/restful/proxies.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_proxy(name: &str) -> Result<Proxy> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `rule_payload` are never read
[INFO] [stdout]    --> src/functions/restful.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub struct Conn {
[INFO] [stdout]     |                ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 269 |         pub start: String,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |         pub rule_payload: Option<String>,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Conn` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/functions/restful.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub struct ConnMetaData {
[INFO] [stdout]     |                ------------ fields in this struct
[INFO] [stdout] 281 |         pub network: String,
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 282 |         #[serde(rename = "type", default)]
[INFO] [stdout] 283 |         pub ctype: String,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |         pub process: String,
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 287 |         #[serde(default)]
[INFO] [stdout] 288 |         pub process_path: String,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |         pub source_ip: String,
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] 292 |         pub source_port: String,
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |         pub sniff_host: Option<String>,
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnMetaData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_logs` is never used
[INFO] [stdout]    --> src/functions/restful.rs:420:12
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_logs(level: Option<&str>) -> Result<Vec<LogEntry>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get` is never used
[INFO] [stdout]    --> src/tui/agent.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub fn get(value: &mut serde_yml::Mapping, idx: &str) -> Result<serde_yml::Mapping> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/connections.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / mod_agent!(
[INFO] [stdout] 11 | |     Key,
[INFO] [stdout] 12 | |     [
[INFO] [stdout] 13 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/files/template.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / mod_agent!(
[INFO] [stdout]  9 | |     Key,
[INFO] [stdout] 10 | |     [
[INFO] [stdout] 11 | |         ([KeyCode::Left], Key::Switch, "Switch pane"),
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/logs.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | / mod_agent!(
[INFO] [stdout] 14 | |     Key,
[INFO] [stdout] 15 | |     [
[INFO] [stdout] 16 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 32 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/proxies.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / mod_agent!(
[INFO] [stdout] 12 | |     Key,
[INFO] [stdout] 13 | |     [
[INFO] [stdout] 14 | |         ([KeyCode::Up], Key::MoveUp, "Move up"),
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/settings.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | / mod_agent!(
[INFO] [stdout] 13 | |     SettingsKey,
[INFO] [stdout] 14 | |     [
[INFO] [stdout] 15 | |         ([KeyCode::Enter], SettingsKey::Execute, "Apply"),
[INFO] [stdout] ...  |
[INFO] [stdout] 22 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spawn_current_status_check` is never used
[INFO] [stdout]    --> src/tui/tab/srvctl.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl SrvCtlContent {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn spawn_current_status_check(&self, task_set: &mut FutureSet<Self>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_from_str` is never used
[INFO] [stdout]   --> src/tui/tab/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |   macro_rules! mod_agent {
[INFO] [stdout] ...
[INFO] [stdout] 57 |       fn key_from_str(s: &str) -> crate::tui::Key {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tui/tab/srvctl.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / mod_agent!(
[INFO] [stdout]  9 | |     SrvCtlKey,
[INFO] [stdout] 10 | |     [
[INFO] [stdout] 11 | |         ([KeyCode::Enter], SrvCtlKey::Execute, "Execute"),
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/tui/theme.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub(crate) struct ComputedSectionTheme {
[INFO] [stdout]    |                   -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub title: Style,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ComputedSectionTheme` 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 `chord_handler_Sn_dispatches_global_sort_by_name` should have a snake case name
[INFO] [stdout]    --> src/tui/tab/proxies.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn chord_handler_Sn_dispatches_global_sort_by_name() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `chord_handler_sn_dispatches_global_sort_by_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_key_G_in_agent` should have a snake case name
[INFO] [stdout]    --> src/tui/tab/proxies.rs:240:8
[INFO] [stdout]     |
[INFO] [stdout] 240 |     fn single_key_G_in_agent() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `single_key_g_in_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `S_initiates_chord_mode` should have a snake case name
[INFO] [stdout]    --> src/tui/tab/proxies.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn S_initiates_chord_mode() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `s_initiates_chord_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Sd_dispatches_global_sort_by_delay` should have a snake case name
[INFO] [stdout]    --> src/tui/tab/proxies.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn Sd_dispatches_global_sort_by_delay() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `sd_dispatches_global_sort_by_delay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Sr_dispatches_global_reset_sort` should have a snake case name
[INFO] [stdout]    --> src/tui/tab/proxies.rs:340:8
[INFO] [stdout]     |
[INFO] [stdout] 340 |     fn Sr_dispatches_global_reset_sort() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `sr_dispatches_global_reset_sort`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.57s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 9`
[INFO] running `Command { std: "docker" "inspect" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4", kill_on_drop: false }`
[INFO] [stdout] 812038d2abbb0b5e0008ffad1de4e59a2f48593ce413f56b1df96dfd963df6e4
