[INFO] cloning repository https://github.com/Teln0/TermUI
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Teln0/TermUI" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeln0%2FTermUI", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeln0%2FTermUI'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d56a749ac84a1a5fe311637e62a3a1278890024
[INFO] checking Teln0/TermUI against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeln0%2FTermUI" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Teln0/TermUI
[INFO] finished tweaking git repo https://github.com/Teln0/TermUI
[INFO] tweaked toml for git repo https://github.com/Teln0/TermUI written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Teln0/TermUI on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Teln0/TermUI 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vte v0.8.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.6.1
[INFO] [stderr]   Downloaded errno v0.2.5
[INFO] [stderr]   Downloaded term v0.6.1
[INFO] [stderr]   Downloaded crossterm v0.17.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5a5862c83a30e76ba81aeeae2c31c85510940333c42a5da0d944213525681d9c
[INFO] running `Command { std: "docker" "start" "-a" "5a5862c83a30e76ba81aeeae2c31c85510940333c42a5da0d944213525681d9c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5a5862c83a30e76ba81aeeae2c31c85510940333c42a5da0d944213525681d9c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a5862c83a30e76ba81aeeae2c31c85510940333c42a5da0d944213525681d9c", kill_on_drop: false }`
[INFO] [stdout] 5a5862c83a30e76ba81aeeae2c31c85510940333c42a5da0d944213525681d9c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ba144c9898cc6b46a26c98510226e5c0c72d76ff5c54495e9c211e7bd65c780d
[INFO] running `Command { std: "docker" "start" "-a" "ba144c9898cc6b46a26c98510226e5c0c72d76ff5c54495e9c211e7bd65c780d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]     Checking arc-swap v0.4.7
[INFO] [stderr]    Compiling nix v0.17.0
[INFO] [stderr]     Checking utf8parse v0.2.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking crossbeam-channel v0.4.2
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.1
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking vte v0.8.0
[INFO] [stderr]     Checking crossbeam v0.7.3
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking signal-hook-registry v1.2.0
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking dirs-sys v0.3.5
[INFO] [stderr]     Checking errno v0.2.5
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking term v0.6.1
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking signal-hook v0.1.16
[INFO] [stderr]     Checking crossterm v0.17.5
[INFO] [stderr]     Checking termui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufWriter`, `StdoutLock`, and `stdout`
[INFO] [stdout]  --> src/renderer/mod.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{stdout, Write, BufWriter, Stdout, StdoutLock};
[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 imports: `ExecutableCommand` and `terminal`
[INFO] [stdout]  --> src/renderer/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ExecutableCommand, QueueableCommand,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     terminal, cursor, style::{self, Colorize}, Result
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/renderer/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]  --> src/renderer/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::CString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/screen/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChildStdin`, `ChildStdout`, `Command`, and `Stdio`
[INFO] [stdout]  --> src/screen/mod.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::process::{Command, Stdio, ChildStdin, ChildStdout, exit};
[INFO] [stdout]   |                    ^^^^^^^  ^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/screen/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]   --> src/screen/mod.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | use nix::unistd::{fork, ForkResult, close, setsid, dup2, Pid};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RawFd`
[INFO] [stdout]   --> src/screen/mod.rs:18:45
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};
[INFO] [stdout]    |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `c_char`
[INFO] [stdout]   --> src/screen/mod.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::os::raw::{c_char, c_void};
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CStr`
[INFO] [stdout]   --> src/screen/mod.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::ffi::{CString, CStr};
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::alloc::handle_alloc_error`
[INFO] [stdout]   --> src/screen/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::alloc::handle_alloc_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]   --> src/screen/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::thread::current;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/screen/mod.rs:527:38
[INFO] [stdout]     |
[INFO] [stdout] 527 |                 self.master_fd.write((&[0x08 as u8])).unwrap();
[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] 527 -                 self.master_fd.write((&[0x08 as u8])).unwrap();
[INFO] [stdout] 527 +                 self.master_fd.write(&[0x08 as u8] ).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]  --> src/main.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crossterm::{event::*, Result, terminal::size, QueueableCommand};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `stdout`
[INFO] [stdout]  --> src/main.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{Write, stdout, Read};
[INFO] [stdout]   |                      ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command` and `exit`
[INFO] [stdout]  --> src/main.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::process::{exit, Command};
[INFO] [stdout]   |                    ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::borrow::Borrow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::thread::sleep;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Stdio`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::process::Stdio;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufWriter`, `StdoutLock`, and `stdout`
[INFO] [stdout]  --> src/renderer/mod.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{stdout, Write, BufWriter, Stdout, StdoutLock};
[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 imports: `ExecutableCommand` and `terminal`
[INFO] [stdout]  --> src/renderer/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ExecutableCommand, QueueableCommand,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     terminal, cursor, style::{self, Colorize}, Result
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/renderer/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]  --> src/renderer/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::CString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/screen/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChildStdin`, `ChildStdout`, `Command`, and `Stdio`
[INFO] [stdout]  --> src/screen/mod.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::process::{Command, Stdio, ChildStdin, ChildStdout, exit};
[INFO] [stdout]   |                    ^^^^^^^  ^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/screen/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]   --> src/screen/mod.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | use nix::unistd::{fork, ForkResult, close, setsid, dup2, Pid};
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RawFd`
[INFO] [stdout]   --> src/screen/mod.rs:18:45
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};
[INFO] [stdout]    |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `c_char`
[INFO] [stdout]   --> src/screen/mod.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::os::raw::{c_char, c_void};
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CStr`
[INFO] [stdout]   --> src/screen/mod.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::ffi::{CString, CStr};
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::alloc::handle_alloc_error`
[INFO] [stdout]   --> src/screen/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::alloc::handle_alloc_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]   --> src/screen/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::thread::current;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/screen/mod.rs:527:38
[INFO] [stdout]     |
[INFO] [stdout] 527 |                 self.master_fd.write((&[0x08 as u8])).unwrap();
[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] 527 -                 self.master_fd.write((&[0x08 as u8])).unwrap();
[INFO] [stdout] 527 +                 self.master_fd.write(&[0x08 as u8] ).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]  --> src/main.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crossterm::{event::*, Result, terminal::size, QueueableCommand};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `stdout`
[INFO] [stdout]  --> src/main.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{Write, stdout, Read};
[INFO] [stdout]   |                      ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command` and `exit`
[INFO] [stdout]  --> src/main.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::process::{exit, Command};
[INFO] [stdout]   |                    ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::borrow::Borrow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::thread::sleep;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Stdio`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::process::Stdio;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/screen/mod.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |           return;
[INFO] [stdout]     |           ------ any code following this expression is unreachable
[INFO] [stdout] 124 | /         match action {
[INFO] [stdout] 125 | |             'A' => { // Cursor Up
[INFO] [stdout] 126 | |                 if (self.cursor.1 as i64) > params[0] {
[INFO] [stdout] 127 | |                     self.cursor.1 -= params[0] as usize;
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/screen/mod.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |           return;
[INFO] [stdout]     |           ------ any code following this expression is unreachable
[INFO] [stdout] 124 | /         match action {
[INFO] [stdout] 125 | |             'A' => { // Cursor Up
[INFO] [stdout] 126 | |                 if (self.cursor.1 as i64) > params[0] {
[INFO] [stdout] 127 | |                     self.cursor.1 -= params[0] as usize;
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     for mut line in lines {
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut vec: Vec<u8> = vec![];
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut s = stdout;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:106:40
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:106:62
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/screen/mod.rs:106:76
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/screen/mod.rs:110:23
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn put(&mut self, byte: u8) {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn osc_dispatch(&mut self, params: &[&[u8]], bell_terminated: bool) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bell_terminated`
[INFO] [stdout]    --> src/screen/mod.rs:118:50
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn osc_dispatch(&mut self, params: &[&[u8]], bell_terminated: bool) {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bell_terminated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:122:48
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:122:70
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/screen/mod.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     for mut line in lines {
[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: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:333:32
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn esc_dispatch(&mut self, intermediates: &[u8], ignore: bool, byte: u8) {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:333:54
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn esc_dispatch(&mut self, intermediates: &[u8], ignore: bool, byte: u8) {
[INFO] [stdout]     |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/screen/mod.rs:484:31
[INFO] [stdout]     |
[INFO] [stdout] 484 |     fn on_mouse_up(&mut self, x: u16, y: u16) {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut vec: Vec<u8> = vec![];
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/screen/mod.rs:484:39
[INFO] [stdout]     |
[INFO] [stdout] 484 |     fn on_mouse_up(&mut self, x: u16, y: u16) {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renderer/mod.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut s = stdout;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]    --> src/screen/mod.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 |     fn on_key(&mut self, code: KeyCode, modifiers: KeyModifiers) {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:106:40
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:106:62
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/screen/mod.rs:106:76
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn hook(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/screen/mod.rs:110:23
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn put(&mut self, byte: u8) {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn osc_dispatch(&mut self, params: &[&[u8]], bell_terminated: bool) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bell_terminated`
[INFO] [stdout]    --> src/screen/mod.rs:118:50
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn osc_dispatch(&mut self, params: &[&[u8]], bell_terminated: bool) {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bell_terminated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/screen/mod.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screen/mod.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 let mut master_file: File = unsafe { std::fs::File::from_raw_fd(master_fd) };
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:122:48
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screen/mod.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut m: File = unsafe { std::fs::File::from_raw_fd(master_fd.as_raw_fd()) };
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:122:70
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/screen/mod.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn csi_dispatch(&mut self, params: &[i64], intermediates: &[u8], ignore: bool, action: char) {
[INFO] [stdout]     |                                                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediates`
[INFO] [stdout]    --> src/screen/mod.rs:333:32
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn esc_dispatch(&mut self, intermediates: &[u8], ignore: bool, byte: u8) {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ignore`
[INFO] [stdout]    --> src/screen/mod.rs:333:54
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn esc_dispatch(&mut self, intermediates: &[u8], ignore: bool, byte: u8) {
[INFO] [stdout]     |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> src/screen/mod.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |         let lines: Vec<String> = vec!["".to_string()];
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/screen/mod.rs:484:31
[INFO] [stdout]     |
[INFO] [stdout] 484 |     fn on_mouse_up(&mut self, x: u16, y: u16) {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/screen/mod.rs:484:39
[INFO] [stdout]     |
[INFO] [stdout] 484 |     fn on_mouse_up(&mut self, x: u16, y: u16) {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]    --> src/screen/mod.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 |     fn on_key(&mut self, code: KeyCode, modifiers: KeyModifiers) {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screen/mod.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 let mut master_file: File = unsafe { std::fs::File::from_raw_fd(master_fd) };
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/screen/mod.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut m: File = unsafe { std::fs::File::from_raw_fd(master_fd.as_raw_fd()) };
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> src/screen/mod.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |         let lines: Vec<String> = vec!["".to_string()];
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout]  71 |                     Event::Resize(w, h) => {
[INFO] [stdout]     |                     ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |                     Event::Mouse(mouseEvent) => {
[INFO] [stdout]     |                     ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  96 |                     Event::Key(key_event) => {
[INFO] [stdout]     |                     --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 108 |                     _ => {}
[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/main.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...                   _ => {}
[INFO] [stdout]    |                       ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       --------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       ------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       --------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                       ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 93 | ...                   _ => {}
[INFO] [stdout]    |                       ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:77:46
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:77:66
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:81:44
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:81:64
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:84:46
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:84:66
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:87:50
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:87:53
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:87:56
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:90:52
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:90:55
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:90:58
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout]  71 |                     Event::Resize(w, h) => {
[INFO] [stdout]     |                     ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |                     Event::Mouse(mouseEvent) => {
[INFO] [stdout]     |                     ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  96 |                     Event::Key(key_event) => {
[INFO] [stdout]     |                     --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 108 |                     _ => {}
[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/main.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 | ...                   _ => {}
[INFO] [stdout]    |                       ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       --------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       ------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                       --------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                       ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 93 | ...                   _ => {}
[INFO] [stdout]    |                       ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attrs` is never read
[INFO] [stdout]   --> src/screen/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CharacterCell {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub attrs: Attr,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CharacterCell` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input` is never used
[INFO] [stdout]    --> src/screen/mod.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait Container {
[INFO] [stdout]     |           --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 356 |     fn input(&mut self, input: String);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dev_console` is never read
[INFO] [stdout]    --> src/screen/mod.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub struct Screen {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 654 |     pub containers: Vec<Rc<RefCell<Box<dyn Container>>>>,
[INFO] [stdout] 655 |     pub dev_console: Vec<String>
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_container` is never used
[INFO] [stdout]    --> src/screen/mod.rs:670:12
[INFO] [stdout]     |
[INFO] [stdout] 658 | impl Screen {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn get_container(&self, index: u16) -> Option<Rc<RefCell<Box<dyn Container>>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     enable_raw_mode();
[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] 22 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         renderer::redraw(&mut stdout, current_w, current_h, &screen);
[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] 60 |         let _ = renderer::redraw(&mut stdout, current_w, current_h, &screen);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         renderer::redraw(&mut stdout, current_w, current_h, &screen);
[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] 66 |         let _ = renderer::redraw(&mut stdout, current_w, current_h, &screen);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mouseEvent` should have a snake case name
[INFO] [stdout]   --> src/main.rs:75:34
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     Event::Mouse(mouseEvent) => {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `mouse_event`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/renderer/mod.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | /     stdout
[INFO] [stdout] 107 | |         .queue(cursor::MoveTo(2, 0)).unwrap()
[INFO] [stdout] 108 | |         .queue(crossterm::style::Print(info_string));
[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] 106 |     let _ = stdout
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/renderer/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     s.write_all(&stdout);
[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] 110 |     let _ = s.write_all(&stdout);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:530:17
[INFO] [stdout]     |
[INFO] [stdout] 530 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'D' as u8]);
[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] 530 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'D' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:533:17
[INFO] [stdout]     |
[INFO] [stdout] 533 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'C' as u8]);
[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] 533 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'C' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:536:17
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'A' as u8]);
[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] 536 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'A' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:539:17
[INFO] [stdout]     |
[INFO] [stdout] 539 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'B' as u8]);
[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] 539 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'B' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:577:17
[INFO] [stdout]     |
[INFO] [stdout] 577 |                 dup2(slave_fd, 0); // stdin
[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] 577 |                 let _ = dup2(slave_fd, 0); // stdin
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:578:17
[INFO] [stdout]     |
[INFO] [stdout] 578 |                 dup2(slave_fd, 1); // stdout
[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] 578 |                 let _ = dup2(slave_fd, 1); // stdout
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:579:17
[INFO] [stdout]     |
[INFO] [stdout] 579 |                 dup2(slave_fd, 2); // stderr
[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] 579 |                 let _ = dup2(slave_fd, 2); // stderr
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/screen/mod.rs:593:30
[INFO] [stdout]     |
[INFO] [stdout] 593 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 593 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 593 -             Err(e) => panic!(e),
[INFO] [stdout] 593 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:77:46
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:77:66
[INFO] [stdout]    |
[INFO] [stdout] 77 | ...                   MouseEvent::Down(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:81:44
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:81:64
[INFO] [stdout]    |
[INFO] [stdout] 81 | ...                   MouseEvent::Up(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse_button`
[INFO] [stdout]   --> src/main.rs:84:46
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:84:66
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...                   MouseEvent::Drag(mouse_button, x, y, key_modifiers) => {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:87:50
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:87:53
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:87:56
[INFO] [stdout]    |
[INFO] [stdout] 87 | ...                   MouseEvent::ScrollUp(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:90:52
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:90:55
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_modifiers`
[INFO] [stdout]   --> src/main.rs:90:58
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   MouseEvent::ScrollDown(x, y, key_modifiers) => {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attrs` is never read
[INFO] [stdout]   --> src/screen/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CharacterCell {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub attrs: Attr,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CharacterCell` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input` is never used
[INFO] [stdout]    --> src/screen/mod.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait Container {
[INFO] [stdout]     |           --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 356 |     fn input(&mut self, input: String);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dev_console` is never read
[INFO] [stdout]    --> src/screen/mod.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub struct Screen {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 654 |     pub containers: Vec<Rc<RefCell<Box<dyn Container>>>>,
[INFO] [stdout] 655 |     pub dev_console: Vec<String>
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_container` is never used
[INFO] [stdout]    --> src/screen/mod.rs:670:12
[INFO] [stdout]     |
[INFO] [stdout] 658 | impl Screen {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn get_container(&self, index: u16) -> Option<Rc<RefCell<Box<dyn Container>>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     enable_raw_mode();
[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] 22 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         renderer::redraw(&mut stdout, current_w, current_h, &screen);
[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] 60 |         let _ = renderer::redraw(&mut stdout, current_w, current_h, &screen);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         renderer::redraw(&mut stdout, current_w, current_h, &screen);
[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] 66 |         let _ = renderer::redraw(&mut stdout, current_w, current_h, &screen);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mouseEvent` should have a snake case name
[INFO] [stdout]   --> src/main.rs:75:34
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     Event::Mouse(mouseEvent) => {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `mouse_event`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/renderer/mod.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | /     stdout
[INFO] [stdout] 107 | |         .queue(cursor::MoveTo(2, 0)).unwrap()
[INFO] [stdout] 108 | |         .queue(crossterm::style::Print(info_string));
[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] 106 |     let _ = stdout
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/renderer/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     s.write_all(&stdout);
[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] 110 |     let _ = s.write_all(&stdout);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:530:17
[INFO] [stdout]     |
[INFO] [stdout] 530 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'D' as u8]);
[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] 530 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'D' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:533:17
[INFO] [stdout]     |
[INFO] [stdout] 533 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'C' as u8]);
[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] 533 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'C' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:536:17
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'A' as u8]);
[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] 536 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'A' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:539:17
[INFO] [stdout]     |
[INFO] [stdout] 539 |                 self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'B' as u8]);
[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] 539 |                 let _ = self.master_fd.write_all(&[0x1B as u8, '[' as u8, 'B' as u8]);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:577:17
[INFO] [stdout]     |
[INFO] [stdout] 577 |                 dup2(slave_fd, 0); // stdin
[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] 577 |                 let _ = dup2(slave_fd, 0); // stdin
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:578:17
[INFO] [stdout]     |
[INFO] [stdout] 578 |                 dup2(slave_fd, 1); // stdout
[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] 578 |                 let _ = dup2(slave_fd, 1); // stdout
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/screen/mod.rs:579:17
[INFO] [stdout]     |
[INFO] [stdout] 579 |                 dup2(slave_fd, 2); // stderr
[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] 579 |                 let _ = dup2(slave_fd, 2); // stderr
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/screen/mod.rs:593:30
[INFO] [stdout]     |
[INFO] [stdout] 593 |             Err(e) => panic!(e),
[INFO] [stdout]     |                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 593 |             Err(e) => panic!("{}", e),
[INFO] [stdout]     |                              +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 593 -             Err(e) => panic!(e),
[INFO] [stdout] 593 +             Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.05s
[INFO] running `Command { std: "docker" "inspect" "ba144c9898cc6b46a26c98510226e5c0c72d76ff5c54495e9c211e7bd65c780d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba144c9898cc6b46a26c98510226e5c0c72d76ff5c54495e9c211e7bd65c780d", kill_on_drop: false }`
[INFO] [stdout] ba144c9898cc6b46a26c98510226e5c0c72d76ff5c54495e9c211e7bd65c780d
