[INFO] cloning repository https://github.com/21ljy12/rust_ssh
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/21ljy12/rust_ssh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F21ljy12%2Frust_ssh", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F21ljy12%2Frust_ssh'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b539fcbb68f5c918e3307facfc6a8f8133e2110b
[INFO] checking 21ljy12/rust_ssh against master#f8463896a9b36a04899c013bd8825a7fd29dd7a4 for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F21ljy12%2Frust_ssh" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/21ljy12/rust_ssh
[INFO] finished tweaking git repo https://github.com/21ljy12/rust_ssh
[INFO] tweaked toml for git repo https://github.com/21ljy12/rust_ssh written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/21ljy12/rust_ssh on toolchain f8463896a9b36a04899c013bd8825a7fd29dd7a4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/21ljy12/rust_ssh 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" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 9 packages to latest Rust 1.95.0-nightly compatible versions
[INFO] [stderr]       Adding cc v1.2.56
[INFO] [stderr]       Adding find-msvc-tools v0.1.9
[INFO] [stderr]       Adding libssh2-sys v0.3.1
[INFO] [stderr]       Adding libz-sys v1.1.23
[INFO] [stderr]       Adding openssl-sys v0.9.111
[INFO] [stderr]       Adding pkg-config v0.3.32
[INFO] [stderr]       Adding shlex v1.3.0
[INFO] [stderr]       Adding ssh2 v0.9.5
[INFO] [stderr]       Adding vcpkg v0.2.15
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ssh2 v0.9.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 48039f95963a970f17658587a6f8f1fa30ceccece9e27f3071e857834462dfa0
[INFO] running `Command { std: "docker" "start" "-a" "48039f95963a970f17658587a6f8f1fa30ceccece9e27f3071e857834462dfa0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48039f95963a970f17658587a6f8f1fa30ceccece9e27f3071e857834462dfa0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48039f95963a970f17658587a6f8f1fa30ceccece9e27f3071e857834462dfa0", kill_on_drop: false }`
[INFO] [stdout] 48039f95963a970f17658587a6f8f1fa30ceccece9e27f3071e857834462dfa0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f883eddf472f675db166edf312296d3ed83d9c504a89f6a465f4ec42d5e8675
[INFO] running `Command { std: "docker" "start" "-a" "2f883eddf472f675db166edf312296d3ed83d9c504a89f6a465f4ec42d5e8675", kill_on_drop: false }`
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]     Checking openssl-sys v0.9.111
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stderr]     Checking ssh2 v0.9.5
[INFO] [stderr]     Checking ssh v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `constant`
[INFO] [stdout]  --> src/app.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod constant;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `constant`, create file "src/app/constant.rs" or "src/app/constant/mod.rs"
[INFO] [stdout]   = note: if there is a `mod constant` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token `||` in pattern
[INFO] [stdout]  --> src/handlers/login.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |         KeyCode::Esc || KeyCode::Char('q') => {
[INFO] [stdout]   |         ------------ ^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         while parsing this or-pattern starting here
[INFO] [stdout]   |
[INFO] [stdout] help: use a single `|` to separate multiple alternative patterns
[INFO] [stdout]   |
[INFO] [stdout] 7 -         KeyCode::Esc || KeyCode::Char('q') => {
[INFO] [stdout] 7 +         KeyCode::Esc | KeyCode::Char('q') => {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 38 -                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 38 +                 val if val == CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::AGENT.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 ~                 VAL => loginByKey(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 39 +                 val if val == CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::PASSWORD.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 ~                 VAL => loginByPassword(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout] 40 +                 val if val == CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::HISTORY.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 41 ~                 VAL => history(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout] 41 +                 val if val == CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::EXIT.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 41 |                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout] 42 ~                 VAL => return true,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 45 -                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 45 +                 val if val == CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::SETTING.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 ~                 VAL => toolbar::settings(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 46 -                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout] 46 +                 val if val == CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::HELP.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 47 ~                 VAL  => toolbar::help(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 47 -                 CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout] 47 +                 val if val == CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::ABOUT.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 47 |                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout] 48 ~                 VAL => toolbar::about(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `passowrd`
[INFO] [stdout]  --> src/ui/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod passowrd;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `passowrd`, create file "src/ui/passowrd.rs" or "src/ui/passowrd/mod.rs"
[INFO] [stdout]   = note: if there is a `mod passowrd` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::constant`
[INFO] [stdout]  --> src/app.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::constant::CONST_VALUE;
[INFO] [stdout]   |            ^^^^^^^^ could not find `constant` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `crate::handlers::Agent`, `crate::handlers::File`, `crate::handlers::Login`, `crate::handlers::Password`
[INFO] [stdout]  --> src/main.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout]   |                       ^^^^^  ^^^^  ^^^^^  ^^^^^^^^ no `Password` in `handlers`
[INFO] [stdout]   |                       |      |     |
[INFO] [stdout]   |                       |      |     no `Login` in `handlers`
[INFO] [stdout]   |                       |      no `File` in `handlers`
[INFO] [stdout]   |                       no `Agent` in `handlers`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these items instead:
[INFO] [stdout]           crate::Screen::Agent
[INFO] [stdout]           ssh2::Agent
[INFO] [stdout]   = help: consider importing one of these items instead:
[INFO] [stdout]           crate::Screen::File
[INFO] [stdout]           std::fs::File
[INFO] [stdout]           ssh2::File
[INFO] [stdout]           ssh2::OpenType::File
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           crate::Screen::Login
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           crate::Screen::Password
[INFO] [stdout] help: a similar name exists in the module (notice the capitalization)
[INFO] [stdout]   |
[INFO] [stdout] 9 - use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout] 9 + use crate::handlers::{Agent, file, Login, Password};
[INFO] [stdout]   |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]   |
[INFO] [stdout] 9 - use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout] 9 + use crate::handlers::{Agent, File, login, Password};
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `login`
[INFO] [stdout]   --> src/main.rs:57:38
[INFO] [stdout]    |
[INFO] [stdout] 57 |                     Screen::Login => login::handle_event(&mut app, key),
[INFO] [stdout]    |                                      ^^^^^ use of unresolved module or unlinked crate `login`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `login`, use `cargo add login` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  5 + use crate::handlers::login;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `file`
[INFO] [stdout]   --> src/main.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |                     Screen::File => file::handle_event(&mut app, key),
[INFO] [stdout]    |                                     ^^^^ use of unresolved module or unlinked crate `file`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `file`, use `cargo add file` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  5 + use crate::handlers::file;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> src/ui/file.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tui::widgets::{Block, Borders, List, ListItem, ListState};
[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: `crate::app::App`
[INFO] [stdout]  --> src/ui/login.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]  --> src/ui/toolbar.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `password`
[INFO] [stdout]   --> src/main.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     Screen::Password => password::handle_event(&mut app, key),
[INFO] [stdout]    |                                         ^^^^^^^^ use of unresolved module or unlinked crate `password`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 59 -                     Screen::Password => password::handle_event(&mut app, key),
[INFO] [stdout] 59 +                     Screen::Password => passowrd::handle_event(&mut app, key),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `agent`
[INFO] [stdout]   --> src/main.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     Screen::Agent => agent::handle_event(&mut app, key),
[INFO] [stdout]    |                                      ^^^^^ use of unresolved module or unlinked crate `agent`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `agent`, use `cargo add agent` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/handlers/file.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn handle_event(app: &mut App, key: KeyEvent) -> bool {
[INFO] [stdout]   |                     ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]  --> src/handlers/file.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn handle_event(app: &mut App, key: KeyEvent) -> bool {
[INFO] [stdout]   |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0583.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ssh` (bin "ssh" test) due to 16 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0583]: file not found for module `constant`
[INFO] [stdout]  --> src/app.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod constant;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `constant`, create file "src/app/constant.rs" or "src/app/constant/mod.rs"
[INFO] [stdout]   = note: if there is a `mod constant` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token `||` in pattern
[INFO] [stdout]  --> src/handlers/login.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |         KeyCode::Esc || KeyCode::Char('q') => {
[INFO] [stdout]   |         ------------ ^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         while parsing this or-pattern starting here
[INFO] [stdout]   |
[INFO] [stdout] help: use a single `|` to separate multiple alternative patterns
[INFO] [stdout]   |
[INFO] [stdout] 7 -         KeyCode::Esc || KeyCode::Char('q') => {
[INFO] [stdout] 7 +         KeyCode::Esc | KeyCode::Char('q') => {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 38 -                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 38 +                 val if val == CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::AGENT.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 ~                 VAL => loginByKey(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 39 +                 val if val == CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::PASSWORD.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 ~                 VAL => loginByPassword(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout] 40 +                 val if val == CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::HISTORY.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 41 ~                 VAL => history(app),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout] 41 +                 val if val == CONST_VALUE::EXIT.value() => return true,
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 37 +             const VAL: /* Type */ = CONST_VALUE::EXIT.value();
[INFO] [stdout] 38 |             match app.login_type[app.login_index].as_str() {
[INFO] [stdout] 39 |                 CONST_VALUE::AGENT.value() => loginByKey(app),
[INFO] [stdout] 40 |                 CONST_VALUE::PASSWORD.value() => loginByPassword(app),
[INFO] [stdout] 41 |                 CONST_VALUE::HISTORY.value() => history(app),
[INFO] [stdout] 42 ~                 VAL => return true,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 45 -                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 45 +                 val if val == CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::SETTING.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 ~                 VAL => toolbar::settings(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 46 -                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout] 46 +                 val if val == CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::HELP.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 47 ~                 VAL  => toolbar::help(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a pattern, found an expression
[INFO] [stdout]   --> src/handlers/login.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ not a pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] help: consider moving the expression to a match arm guard
[INFO] [stdout]    |
[INFO] [stdout] 47 -                 CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout] 47 +                 val if val == CONST_VALUE::ABOUT.value() => toolbar::about(),
[INFO] [stdout]    |
[INFO] [stdout] help: consider extracting the expression into a `const`
[INFO] [stdout]    |
[INFO] [stdout] 44 +             const VAL: /* Type */ = CONST_VALUE::ABOUT.value();
[INFO] [stdout] 45 |             match app.menu_items[app.menu_index].as_str() {
[INFO] [stdout] 46 |                 CONST_VALUE::SETTING.value() => toolbar::settings(),
[INFO] [stdout] 47 |                 CONST_VALUE::HELP.value()  => toolbar::help(),
[INFO] [stdout] 48 ~                 VAL => toolbar::about(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `passowrd`
[INFO] [stdout]  --> src/ui/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod passowrd;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `passowrd`, create file "src/ui/passowrd.rs" or "src/ui/passowrd/mod.rs"
[INFO] [stdout]   = note: if there is a `mod passowrd` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::constant`
[INFO] [stdout]  --> src/app.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::constant::CONST_VALUE;
[INFO] [stdout]   |            ^^^^^^^^ could not find `constant` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `crate::handlers::Agent`, `crate::handlers::File`, `crate::handlers::Login`, `crate::handlers::Password`
[INFO] [stdout]  --> src/main.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout]   |                       ^^^^^  ^^^^  ^^^^^  ^^^^^^^^ no `Password` in `handlers`
[INFO] [stdout]   |                       |      |     |
[INFO] [stdout]   |                       |      |     no `Login` in `handlers`
[INFO] [stdout]   |                       |      no `File` in `handlers`
[INFO] [stdout]   |                       no `Agent` in `handlers`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these items instead:
[INFO] [stdout]           crate::Screen::Agent
[INFO] [stdout]           ssh2::Agent
[INFO] [stdout]   = help: consider importing one of these items instead:
[INFO] [stdout]           crate::Screen::File
[INFO] [stdout]           std::fs::File
[INFO] [stdout]           ssh2::File
[INFO] [stdout]           ssh2::OpenType::File
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           crate::Screen::Login
[INFO] [stdout]   = help: consider importing this variant instead:
[INFO] [stdout]           crate::Screen::Password
[INFO] [stdout] help: a similar name exists in the module (notice the capitalization)
[INFO] [stdout]   |
[INFO] [stdout] 9 - use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout] 9 + use crate::handlers::{Agent, file, Login, Password};
[INFO] [stdout]   |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]   |
[INFO] [stdout] 9 - use crate::handlers::{Agent, File, Login, Password};
[INFO] [stdout] 9 + use crate::handlers::{Agent, File, login, Password};
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `login`
[INFO] [stdout]   --> src/main.rs:57:38
[INFO] [stdout]    |
[INFO] [stdout] 57 |                     Screen::Login => login::handle_event(&mut app, key),
[INFO] [stdout]    |                                      ^^^^^ use of unresolved module or unlinked crate `login`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `login`, use `cargo add login` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  5 + use crate::handlers::login;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `file`
[INFO] [stdout]   --> src/main.rs:58:37
[INFO] [stdout]    |
[INFO] [stdout] 58 |                     Screen::File => file::handle_event(&mut app, key),
[INFO] [stdout]    |                                     ^^^^ use of unresolved module or unlinked crate `file`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `file`, use `cargo add file` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  5 + use crate::handlers::file;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> src/ui/file.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tui::widgets::{Block, Borders, List, ListItem, ListState};
[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: `crate::app::App`
[INFO] [stdout]  --> src/ui/login.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]  --> src/ui/toolbar.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `password`
[INFO] [stdout]   --> src/main.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     Screen::Password => password::handle_event(&mut app, key),
[INFO] [stdout]    |                                         ^^^^^^^^ use of unresolved module or unlinked crate `password`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 59 -                     Screen::Password => password::handle_event(&mut app, key),
[INFO] [stdout] 59 +                     Screen::Password => passowrd::handle_event(&mut app, key),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `agent`
[INFO] [stdout]   --> src/main.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     Screen::Agent => agent::handle_event(&mut app, key),
[INFO] [stdout]    |                                      ^^^^^ use of unresolved module or unlinked crate `agent`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `agent`, use `cargo add agent` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]  --> src/handlers/file.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn handle_event(app: &mut App, key: KeyEvent) -> bool {
[INFO] [stdout]   |                     ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]  --> src/handlers/file.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn handle_event(app: &mut App, key: KeyEvent) -> bool {
[INFO] [stdout]   |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0583.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ssh` (bin "ssh") due to 16 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "2f883eddf472f675db166edf312296d3ed83d9c504a89f6a465f4ec42d5e8675", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f883eddf472f675db166edf312296d3ed83d9c504a89f6a465f4ec42d5e8675", kill_on_drop: false }`
[INFO] [stdout] 2f883eddf472f675db166edf312296d3ed83d9c504a89f6a465f4ec42d5e8675
