[INFO] cloning repository https://github.com/monarch-os/monarch-lazyvpn
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/monarch-os/monarch-lazyvpn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmonarch-os%2Fmonarch-lazyvpn", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmonarch-os%2Fmonarch-lazyvpn'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ebbc076122fd7608774140027f97d1abe3459c80
[INFO] checking monarch-os/monarch-lazyvpn against try#7dabc88a3b6768751847baeb49983f31ac5f20e2 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmonarch-os%2Fmonarch-lazyvpn" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/monarch-os/monarch-lazyvpn
[INFO] finished tweaking git repo https://github.com/monarch-os/monarch-lazyvpn
[INFO] tweaked toml for git repo https://github.com/monarch-os/monarch-lazyvpn written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/monarch-os/monarch-lazyvpn on toolchain 7dabc88a3b6768751847baeb49983f31ac5f20e2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/monarch-os/monarch-lazyvpn 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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 45119a9cf66018bbfc7ef2ddf95ebd975e069a3df4f955486de3b3522e0172d5
[INFO] running `Command { std: "docker" "start" "-a" "45119a9cf66018bbfc7ef2ddf95ebd975e069a3df4f955486de3b3522e0172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45119a9cf66018bbfc7ef2ddf95ebd975e069a3df4f955486de3b3522e0172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45119a9cf66018bbfc7ef2ddf95ebd975e069a3df4f955486de3b3522e0172d5", kill_on_drop: false }`
[INFO] [stdout] 45119a9cf66018bbfc7ef2ddf95ebd975e069a3df4f955486de3b3522e0172d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9134a39dc81ee0fa26bda8d1d3e8972c72560f6325c6088da46b4a5be4eab899
[INFO] running `Command { std: "docker" "start" "-a" "9134a39dc81ee0fa26bda8d1d3e8972c72560f6325c6088da46b4a5be4eab899", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling zerocopy v0.8.37
[INFO] [stderr]     Checking unicode-ident v1.0.22
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking quote v1.0.44
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking syn v2.0.114
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking ryu v1.0.22
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking iri-string v0.7.10
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking num-conv v0.2.0
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking clap_builder v4.5.56
[INFO] [stderr]     Checking time v0.3.46
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking linux-keyutils v0.2.4
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking netlink-packet-core v0.7.0
[INFO] [stderr]     Checking netlink-packet-route v0.19.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking ratatui v0.26.3
[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]     Checking serde v1.0.228
[INFO] [stderr]     Checking clap v4.5.56
[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 serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking mockall v0.12.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]    Compiling zvariant_derive v5.9.2
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling zvariant v5.9.2
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking netlink-sys v0.8.8
[INFO] [stderr]     Checking netlink-proto v0.11.5
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]     Checking rtnetlink v0.14.1
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]    Compiling zbus_macros v5.13.2
[INFO] [stderr]     Checking secret-service v3.1.0
[INFO] [stderr]     Checking zbus v5.13.2
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking keyring v2.3.3
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking notify-rust v4.12.0
[INFO] [stderr]     Checking monarch-lazyvpn v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Result` and `VpnError`
[INFO] [stdout]  --> src/system/network_monitor.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::error::{Result, VpnError};
[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]  --> src/system/network_monitor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/system/wireguard.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProviderOption`
[INFO] [stdout]  --> src/tui/widgets/mod.rs:9:90
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use provider_menu::{render_first_launch_message, render_provider_menu, ProviderMenu, ProviderOption};
[INFO] [stdout]   |                                                                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `VpnError`
[INFO] [stdout]  --> src/system/network_monitor.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::error::{Result, VpnError};
[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]  --> src/system/network_monitor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/system/wireguard.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProviderOption`
[INFO] [stdout]  --> src/tui/widgets/mod.rs:9:90
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use provider_menu::{render_first_launch_message, render_provider_menu, ProviderMenu, ProviderOption};
[INFO] [stdout]   |                                                                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PermissionsExt`
[INFO] [stdout]  --> src/system/firewall.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::os::unix::fs::{OpenOptionsExt, PermissionsExt};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PermissionsExt`
[INFO] [stdout]   --> src/system/keyring.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::fs::{OpenOptionsExt, PermissionsExt};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prov`
[INFO] [stdout]    --> src/app.rs:611:17
[INFO] [stdout]     |
[INFO] [stdout] 611 |             let prov = self.active_provider.as_ref().ok_or_else(|| {
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_prov`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `credentials`
[INFO] [stdout]     --> src/app.rs:1245:14
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         let (credentials, config_content) = if server.is_custom {
[INFO] [stdout]      |              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PermissionsExt`
[INFO] [stdout]  --> src/system/firewall.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::os::unix::fs::{OpenOptionsExt, PermissionsExt};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PermissionsExt`
[INFO] [stdout]   --> src/system/keyring.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::fs::{OpenOptionsExt, PermissionsExt};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prov`
[INFO] [stdout]    --> src/app.rs:611:17
[INFO] [stdout]     |
[INFO] [stdout] 611 |             let prov = self.active_provider.as_ref().ok_or_else(|| {
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_prov`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `credentials`
[INFO] [stdout]     --> src/app.rs:1245:14
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         let (credentials, config_content) = if server.is_custom {
[INFO] [stdout]      |              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/connection.rs:932:13
[INFO] [stdout]     |
[INFO] [stdout] 932 |         let mut manager = ConnectionManager {
[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: associated function `new` is never used
[INFO] [stdout]   --> src/app.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl TreeViewState {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 53 |     /// Create a new tree view state
[INFO] [stdout] 54 |     pub fn new() -> Self {
[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 `ImportSuccess`, `ImportError`, `RefreshSuccess`, and `RefreshError` are never constructed
[INFO] [stdout]    --> src/app.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum OperationResult {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     ImportSuccess,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]  99 |     ImportError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 100 |     RefreshSuccess(usize),  // server count
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     RefreshError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OperationResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FlagStyle` is never used
[INFO] [stdout]   --> src/core/config.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum FlagStyle {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_provider` and `is_provider_configured` are never used
[INFO] [stdout]    --> src/core/config.rs:259:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl AppConfig {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn remove_provider(&mut self, provider: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn is_provider_configured(&self, provider: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_split_tunnel` is never read
[INFO] [stdout]   --> src/core/connection.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DetectedVpnState {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub is_split_tunnel: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectedVpnState` 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 `is_killswitch_active`, `is_transitioning`, `should_prompt_reconnect`, and `get_reconnect_server_id` are never used
[INFO] [stdout]    --> src/core/connection.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl ConnectionManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn is_killswitch_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn is_transitioning(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |     pub fn should_prompt_reconnect(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     pub fn get_reconnect_server_id(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_name` is never used
[INFO] [stdout]   --> src/core/provider/mod.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait VpnProvider: Send + Sync {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn display_name(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active` is never used
[INFO] [stdout]    --> src/system/firewall.rs:308:18
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl Killswitch {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub async fn is_active(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_fallback_password` and `is_using_fallback` are never used
[INFO] [stdout]    --> src/system/keyring.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl CredentialManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn set_fallback_password(&mut self, password: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn is_using_fallback(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PING_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> src/system/network.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PING_TIMEOUT_SECS: u64 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ping_latency`, `has_connectivity`, `format_rate`, and `format_bytes` are never used
[INFO] [stdout]    --> src/system/network.rs:174:18
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl NetworkStats {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub async fn ping_latency(&self, host: &str) -> Result<f64> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub async fn has_connectivity(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn format_rate(bytes_per_sec: f64) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn format_bytes(bytes: u64) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkEvent` is never used
[INFO] [stdout]   --> src/system/network_monitor.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NetworkEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkState` is never constructed
[INFO] [stdout]   --> src/system/network_monitor.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct NetworkState {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `current` and `diff` are never used
[INFO] [stdout]   --> src/system/network_monitor.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl NetworkState {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 31 |     /// Get current network state
[INFO] [stdout] 32 |     fn current() -> Self {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn diff(&self, other: &NetworkState) -> Vec<NetworkEvent> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_ip` is never used
[INFO] [stdout]   --> src/system/network_monitor.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hex_to_ip(hex: &str) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkMonitor` is never constructed
[INFO] [stdout]    --> src/system/network_monitor.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct NetworkMonitor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_vpn_interface`, `clear_vpn_interface`, `check_changes`, `is_vpn_up`, and `vpn_went_down` are never used
[INFO] [stdout]    --> src/system/network_monitor.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl NetworkMonitor {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 118 |     /// Create a new network monitor
[INFO] [stdout] 119 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_vpn_interface(&mut self, interface: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn clear_vpn_interface(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn check_changes(&mut self) -> Vec<NetworkEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn is_vpn_up(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn vpn_went_down(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkWatcher` is never constructed
[INFO] [stdout]    --> src/system/network_monitor.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct NetworkWatcher {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `start`, `stop`, `set_vpn_interface`, and `clear_vpn_interface` are never used
[INFO] [stdout]    --> src/system/network_monitor.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl NetworkWatcher {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 181 |     /// Create a new network watcher
[INFO] [stdout] 182 |     pub fn new() -> (Self, mpsc::Receiver<NetworkEvent>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub async fn start(&mut self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn stop(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_vpn_interface(&mut self, interface: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn clear_vpn_interface(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APP_NAME` is never used
[INFO] [stdout]  --> src/system/notifications.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const APP_NAME: &str = "monarch-lazyvpn";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]  --> src/system/notifications.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn notify(title: &str, body: &str, critical: bool) {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_connected` is never used
[INFO] [stdout]   --> src/system/notifications.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn notify_connected(server_name: &str, public_ip: Option<&str>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_disconnected` is never used
[INFO] [stdout]   --> src/system/notifications.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn notify_disconnected() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_error` is never used
[INFO] [stdout]   --> src/system/notifications.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn notify_error(error: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_unexpected_disconnect` is never used
[INFO] [stdout]   --> src/system/notifications.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn notify_unexpected_disconnect(server_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_killswitch_active` is never used
[INFO] [stdout]   --> src/system/notifications.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn notify_killswitch_active() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_killswitch_inactive` is never used
[INFO] [stdout]   --> src/system/notifications.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn notify_killswitch_inactive() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_reconnecting` is never used
[INFO] [stdout]   --> src/system/notifications.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn notify_reconnecting(server_name: &str, attempt: u32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_connected`, `interface`, and `get_stats` are never used
[INFO] [stdout]    --> src/system/wireguard.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl WgManager {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn is_connected(&self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn interface(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn get_stats(&self) -> Result<InterfaceStats> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceStats` is never constructed
[INFO] [stdout]    --> src/system/wireguard.rs:506:12
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub struct InterfaceStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `format_bytes` is never used
[INFO] [stdout]    --> src/system/wireguard.rs:513:12
[INFO] [stdout]     |
[INFO] [stdout] 511 | impl InterfaceStats {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 512 |     /// Format bytes as human-readable string
[INFO] [stdout] 513 |     pub fn format_bytes(bytes: u64) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_hidden` is never read
[INFO] [stdout]   --> src/tui/widgets/file_picker.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FileEntry {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub is_hidden: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileEntry` 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 `description` is never used
[INFO] [stdout]   --> src/tui/widgets/provider_menu.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ProviderOption {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/utils/gluetun.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct GluetunData {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 45 |     #[serde(default)]
[INFO] [stdout] 46 |     version: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GluetunData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_provider_servers` is never used
[INFO] [stdout]    --> src/utils/gluetun.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl ServerCache {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_provider_servers(&self, provider: &str) -> Vec<&Server> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/app.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl TreeViewState {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 53 |     /// Create a new tree view state
[INFO] [stdout] 54 |     pub fn new() -> Self {
[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 `ImportSuccess`, `ImportError`, `RefreshSuccess`, and `RefreshError` are never constructed
[INFO] [stdout]    --> src/app.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum OperationResult {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     ImportSuccess,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]  99 |     ImportError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 100 |     RefreshSuccess(usize),  // server count
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     RefreshError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OperationResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FlagStyle` is never used
[INFO] [stdout]   --> src/core/config.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum FlagStyle {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_provider` and `is_provider_configured` are never used
[INFO] [stdout]    --> src/core/config.rs:259:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl AppConfig {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn remove_provider(&mut self, provider: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn is_provider_configured(&self, provider: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_split_tunnel` is never read
[INFO] [stdout]   --> src/core/connection.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DetectedVpnState {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub is_split_tunnel: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectedVpnState` 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 `is_killswitch_active`, `should_prompt_reconnect`, and `get_reconnect_server_id` are never used
[INFO] [stdout]    --> src/core/connection.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl ConnectionManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn is_killswitch_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |     pub fn should_prompt_reconnect(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     pub fn get_reconnect_server_id(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active` is never used
[INFO] [stdout]    --> src/system/firewall.rs:308:18
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl Killswitch {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub async fn is_active(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_fallback_password` and `is_using_fallback` are never used
[INFO] [stdout]    --> src/system/keyring.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl CredentialManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn set_fallback_password(&mut self, password: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn is_using_fallback(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PING_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> src/system/network.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PING_TIMEOUT_SECS: u64 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ping_latency` and `has_connectivity` are never used
[INFO] [stdout]    --> src/system/network.rs:174:18
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl NetworkStats {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub async fn ping_latency(&self, host: &str) -> Result<f64> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub async fn has_connectivity(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/system/network_monitor.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     InterfaceUp(String),
[INFO] [stdout]    |     ----------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     InterfaceUp(String),
[INFO] [stdout] 14 +     InterfaceUp(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/system/network_monitor.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     InterfaceDown(String),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     InterfaceDown(String),
[INFO] [stdout] 16 +     InterfaceDown(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AddressChanged` is never constructed
[INFO] [stdout]   --> src/system/network_monitor.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NetworkEvent {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     AddressChanged(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vpn_interface` is never read
[INFO] [stdout]    --> src/system/network_monitor.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct NetworkMonitor {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 113 |     last_state: NetworkState,
[INFO] [stdout] 114 |     vpn_interface: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_vpn_interface`, `clear_vpn_interface`, `is_vpn_up`, and `vpn_went_down` are never used
[INFO] [stdout]    --> src/system/network_monitor.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl NetworkMonitor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn set_vpn_interface(&mut self, interface: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn clear_vpn_interface(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn is_vpn_up(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn vpn_went_down(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkWatcher` is never constructed
[INFO] [stdout]    --> src/system/network_monitor.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct NetworkWatcher {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `start`, `stop`, `set_vpn_interface`, and `clear_vpn_interface` are never used
[INFO] [stdout]    --> src/system/network_monitor.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl NetworkWatcher {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 181 |     /// Create a new network watcher
[INFO] [stdout] 182 |     pub fn new() -> (Self, mpsc::Receiver<NetworkEvent>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub async fn start(&mut self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn stop(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn set_vpn_interface(&mut self, interface: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn clear_vpn_interface(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APP_NAME` is never used
[INFO] [stdout]  --> src/system/notifications.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const APP_NAME: &str = "monarch-lazyvpn";
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify` is never used
[INFO] [stdout]  --> src/system/notifications.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn notify(title: &str, body: &str, critical: bool) {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_connected` is never used
[INFO] [stdout]   --> src/system/notifications.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn notify_connected(server_name: &str, public_ip: Option<&str>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_disconnected` is never used
[INFO] [stdout]   --> src/system/notifications.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn notify_disconnected() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_error` is never used
[INFO] [stdout]   --> src/system/notifications.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn notify_error(error: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_unexpected_disconnect` is never used
[INFO] [stdout]   --> src/system/notifications.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn notify_unexpected_disconnect(server_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_killswitch_active` is never used
[INFO] [stdout]   --> src/system/notifications.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn notify_killswitch_active() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_killswitch_inactive` is never used
[INFO] [stdout]   --> src/system/notifications.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn notify_killswitch_inactive() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_reconnecting` is never used
[INFO] [stdout]   --> src/system/notifications.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn notify_reconnecting(server_name: &str, attempt: u32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_connected` and `get_stats` are never used
[INFO] [stdout]    --> src/system/wireguard.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl WgManager {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn is_connected(&self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn get_stats(&self) -> Result<InterfaceStats> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rx_bytes` and `tx_bytes` are never read
[INFO] [stdout]    --> src/system/wireguard.rs:507:9
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub struct InterfaceStats {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 507 |     pub rx_bytes: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 508 |     pub tx_bytes: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_hidden` is never read
[INFO] [stdout]   --> src/tui/widgets/file_picker.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FileEntry {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub is_hidden: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileEntry` 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 `description` is never used
[INFO] [stdout]   --> src/tui/widgets/provider_menu.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ProviderOption {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/utils/gluetun.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct GluetunData {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 45 |     #[serde(default)]
[INFO] [stdout] 46 |     version: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GluetunData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_provider_servers` is never used
[INFO] [stdout]    --> src/utils/gluetun.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl ServerCache {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_provider_servers(&self, provider: &str) -> Vec<&Server> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s
[INFO] running `Command { std: "docker" "inspect" "9134a39dc81ee0fa26bda8d1d3e8972c72560f6325c6088da46b4a5be4eab899", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9134a39dc81ee0fa26bda8d1d3e8972c72560f6325c6088da46b4a5be4eab899", kill_on_drop: false }`
[INFO] [stdout] 9134a39dc81ee0fa26bda8d1d3e8972c72560f6325c6088da46b4a5be4eab899
