[INFO] cloning repository https://github.com/BercPlays/dotrinox-manager
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BercPlays/dotrinox-manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBercPlays%2Fdotrinox-manager", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBercPlays%2Fdotrinox-manager'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7df3a5faaabe2e3e48f16ab1a4fac4b1cb010cdb
[INFO] checking BercPlays/dotrinox-manager against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBercPlays%2Fdotrinox-manager" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BercPlays/dotrinox-manager
[INFO] finished tweaking git repo https://github.com/BercPlays/dotrinox-manager
[INFO] tweaked toml for git repo https://github.com/BercPlays/dotrinox-manager written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BercPlays/dotrinox-manager on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BercPlays/dotrinox-manager 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded normpath v1.2.0
[INFO] [stderr]   Downloaded strum v0.26.1
[INFO] [stderr]   Downloaded opener v0.7.0
[INFO] [stderr]   Downloaded lru v0.12.2
[INFO] [stderr]   Downloaded strum_macros v0.26.1
[INFO] [stderr]   Downloaded ratatui v0.26.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 322a6c708cbab374240ee4b9036cb45239ee46a1f106cbe1b517e05184fbee2b
[INFO] running `Command { std: "docker" "start" "-a" "322a6c708cbab374240ee4b9036cb45239ee46a1f106cbe1b517e05184fbee2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "322a6c708cbab374240ee4b9036cb45239ee46a1f106cbe1b517e05184fbee2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "322a6c708cbab374240ee4b9036cb45239ee46a1f106cbe1b517e05184fbee2b", kill_on_drop: false }`
[INFO] [stdout] 322a6c708cbab374240ee4b9036cb45239ee46a1f106cbe1b517e05184fbee2b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 857ae66e7dd4e7d18165b0f3b545ae22b7e225aec237838490fef34317cdbfeb
[INFO] running `Command { std: "docker" "start" "-a" "857ae66e7dd4e7d18165b0f3b545ae22b7e225aec237838490fef34317cdbfeb", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling ahash v0.8.7
[INFO] [stderr]    Compiling openssl-sys v0.9.102
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]    Compiling rustversion v1.0.14
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]     Checking ryu v1.0.16
[INFO] [stderr]    Compiling serde v1.0.198
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling libdbus-sys v0.2.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking mio v0.8.10
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking lock_api v0.4.11
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]     Checking rustls-pki-types v1.4.1
[INFO] [stderr]     Checking base64 v0.22.0
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]    Compiling serde_json v1.0.116
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking encoding_rs v0.8.34
[INFO] [stderr]     Checking ipnet v2.9.0
[INFO] [stderr]    Compiling indoc v2.0.4
[INFO] [stderr]     Checking unicode-segmentation v1.10.1
[INFO] [stderr]     Checking tokio v1.37.0
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking rustls-pemfile v2.1.2
[INFO] [stderr]     Checking castaway v0.2.2
[INFO] [stderr]     Checking unicode-width v0.1.11
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking http-body v1.0.0
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]     Checking http-body-util v0.1.1
[INFO] [stderr]     Checking bstr v1.9.1
[INFO] [stderr]     Checking indexmap v2.2.6
[INFO] [stderr]     Checking lru v0.12.2
[INFO] [stderr]    Compiling stability v0.1.1
[INFO] [stderr]     Checking tokio-util v0.7.10
[INFO] [stderr]     Checking h2 v0.4.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling serde_derive v1.0.198
[INFO] [stderr]    Compiling strum_macros v0.26.1
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking strum v0.26.1
[INFO] [stderr]     Checking ratatui v0.26.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper v1.3.1
[INFO] [stderr]     Checking hyper-util v0.1.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.4
[INFO] [stderr]     Checking dbus v0.9.7
[INFO] [stderr]     Checking opener v0.7.0
[INFO] [stderr]     Checking dotrinox-manager v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::io::Write`
[INFO] [stdout]  --> src/app.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest::blocking::Client`
[INFO] [stdout]  --> src/app.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use reqwest::blocking::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PanelAPI`
[INFO] [stdout]  --> src/app.rs:9:59
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::panel_api_wrapper::{OAuth2TokenRequestPayload, PanelAPI, PanelWrapper};
[INFO] [stdout]   |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `io::Write`
[INFO] [stdout]  --> src/files.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 3 |     io::Write,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `directories::ProjectDirs`
[INFO] [stdout]  --> src/files.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use directories::ProjectDirs;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorderType`, `Color`, and `Text`
[INFO] [stdout]  --> src/pages/error_page.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 |     style::{Color, Style, Stylize},
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 4 |     text::{Line, Text},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |         Block, BorderType, Borders, Paragraph, Wrap,
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::io::Write`
[INFO] [stdout]  --> src/app.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest::blocking::Client`
[INFO] [stdout]  --> src/app.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use reqwest::blocking::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PanelAPI`
[INFO] [stdout]  --> src/app.rs:9:59
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::panel_api_wrapper::{OAuth2TokenRequestPayload, PanelAPI, PanelWrapper};
[INFO] [stdout]   |                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `io::Write`
[INFO] [stdout]  --> src/files.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 3 |     io::Write,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `directories::ProjectDirs`
[INFO] [stdout]  --> src/files.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use directories::ProjectDirs;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorderType`, `Color`, and `Text`
[INFO] [stdout]  --> src/pages/error_page.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 |     style::{Color, Style, Stylize},
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 4 |     text::{Line, Text},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |         Block, BorderType, Borders, Paragraph, Wrap,
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok`
[INFO] [stdout]    --> src/app.rs:187:20
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 Ok(ok) => (),
[INFO] [stdout]     |                    ^^ help: if this is intentional, prefix it with an underscore: `_ok`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/app.rs:188:21
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 Err(err) => panic!("CANT OPEN FOLDER"),
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/app.rs:197:21
[INFO] [stdout]     |
[INFO] [stdout] 197 |                 let mut json =
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok`
[INFO] [stdout]    --> src/app.rs:187:20
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 Ok(ok) => (),
[INFO] [stdout]     |                    ^^ help: if this is intentional, prefix it with an underscore: `_ok`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/app.rs:188:21
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 Err(err) => panic!("CANT OPEN FOLDER"),
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/app.rs:197:21
[INFO] [stdout]     |
[INFO] [stdout] 197 |                 let mut json =
[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: unreachable pattern
[INFO] [stdout]   --> src/ui.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         _ => {}
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/ui.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Menus::ActionPage => SelectionPage::render(app, frame),
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 20 |         Menus::VerifyUserPage => {
[INFO] [stdout]    |         --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 23 |         Menus::ErrorPage => ErrorPage::render(app, frame),
[INFO] [stdout]    |         ---------------- matches some of the same values
[INFO] [stdout] 24 |         Menus::BanPage => BanPage::render(app, frame),
[INFO] [stdout]    |         -------------- matches some of the same values
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |         _ => {}
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/ui.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         _ => {}
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/ui.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Menus::ActionPage => SelectionPage::render(app, frame),
[INFO] [stdout]    |         ----------------- matches some of the same values
[INFO] [stdout] 20 |         Menus::VerifyUserPage => {
[INFO] [stdout]    |         --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 23 |         Menus::ErrorPage => ErrorPage::render(app, frame),
[INFO] [stdout]    |         ---------------- matches some of the same values
[INFO] [stdout] 24 |         Menus::BanPage => BanPage::render(app, frame),
[INFO] [stdout]    |         -------------- matches some of the same values
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |         _ => {}
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |             _ => {}
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Menus::ActionPage => app.select_action(),
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] 26 |             Menus::ErrorPage => app.current_menu = Menus::ActionPage,
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] 27 |             Menus::VerifyUserPage => app.select_user(app.selected_action),
[INFO] [stdout]    |             --------------------- matches some of the same values
[INFO] [stdout] 28 |             Menus::BanPage => app.select_user(app.selected_action),
[INFO] [stdout]    |             -------------- matches some of the same values
[INFO] [stdout] 29 |             _ => {}
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |             _ => {}
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Menus::ActionPage => app.select_action(),
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] 26 |             Menus::ErrorPage => app.current_menu = Menus::ActionPage,
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] 27 |             Menus::VerifyUserPage => app.select_user(app.selected_action),
[INFO] [stdout]    |             --------------------- matches some of the same values
[INFO] [stdout] 28 |             Menus::BanPage => app.select_user(app.selected_action),
[INFO] [stdout]    |             -------------- matches some of the same values
[INFO] [stdout] 29 |             _ => {}
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/traits.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn render(app: &mut App, frame: &mut Frame) {}
[INFO] [stdout]   |               ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]  --> src/traits.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn render(app: &mut App, frame: &mut Frame) {}
[INFO] [stdout]   |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `default` are never used
[INFO] [stdout]    --> src/panel_types.rs:94:8
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl ConfigJson {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout]  94 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn default() -> 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: unused `Result` that must be used
[INFO] [stdout]    --> src/app.rs:205:17
[INFO] [stdout]     |
[INFO] [stdout] 205 | /                 fs::write(
[INFO] [stdout] 206 | |                     config_file_path(),
[INFO] [stdout] 207 | |                     to_string_pretty::<ConfigJson>(&json1).unwrap().as_bytes(),
[INFO] [stdout] 208 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |                 let _ = fs::write(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/app.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 | /                 fs::write(
[INFO] [stdout] 220 | |                     config_file_path(),
[INFO] [stdout] 221 | |                     to_string_pretty::<ConfigJson>(&json).unwrap().as_bytes(),
[INFO] [stdout] 222 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |                 let _ = fs::write(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/traits.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn render(app: &mut App, frame: &mut Frame) {}
[INFO] [stdout]   |               ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]  --> src/traits.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn render(app: &mut App, frame: &mut Frame) {}
[INFO] [stdout]   |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `default` are never used
[INFO] [stdout]    --> src/panel_types.rs:94:8
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl ConfigJson {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout]  94 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn default() -> 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: unused `Result` that must be used
[INFO] [stdout]    --> src/app.rs:205:17
[INFO] [stdout]     |
[INFO] [stdout] 205 | /                 fs::write(
[INFO] [stdout] 206 | |                     config_file_path(),
[INFO] [stdout] 207 | |                     to_string_pretty::<ConfigJson>(&json1).unwrap().as_bytes(),
[INFO] [stdout] 208 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |                 let _ = fs::write(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/app.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 | /                 fs::write(
[INFO] [stdout] 220 | |                     config_file_path(),
[INFO] [stdout] 221 | |                     to_string_pretty::<ConfigJson>(&json).unwrap().as_bytes(),
[INFO] [stdout] 222 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |                 let _ = fs::write(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `directories::ProjectDirs`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use directories::ProjectDirs;
[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: `data_file_path`
[INFO] [stdout]  --> src/main.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 |     config_file_path, create_directory, data_file_path, file_exists, project_directory, read_file,
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     if (!file_exists(config_file_path())) {
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     if (!file_exists(config_file_path())) {
[INFO] [stdout] 23 +     if !file_exists(config_file_path())  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `directories::ProjectDirs`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use directories::ProjectDirs;
[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: `data_file_path`
[INFO] [stdout]  --> src/main.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 |     config_file_path, create_directory, data_file_path, file_exists, project_directory, read_file,
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     if (!file_exists(config_file_path())) {
[INFO] [stdout]    |        ^                                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     if (!file_exists(config_file_path())) {
[INFO] [stdout] 23 +     if !file_exists(config_file_path())  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "857ae66e7dd4e7d18165b0f3b545ae22b7e225aec237838490fef34317cdbfeb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "857ae66e7dd4e7d18165b0f3b545ae22b7e225aec237838490fef34317cdbfeb", kill_on_drop: false }`
[INFO] [stdout] 857ae66e7dd4e7d18165b0f3b545ae22b7e225aec237838490fef34317cdbfeb
