[INFO] cloning repository https://github.com/Braden-Griebel/trout
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Braden-Griebel/trout" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBraden-Griebel%2Ftrout", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBraden-Griebel%2Ftrout'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 46ed656cfd9d6473f91708b36017308f938629e4
[INFO] checking Braden-Griebel/trout against master#a26e97be8826d408309fffbd8168362365719f50 for pr-136776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBraden-Griebel%2Ftrout" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Braden-Griebel/trout on toolchain a26e97be8826d408309fffbd8168362365719f50
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Braden-Griebel/trout
[INFO] finished tweaking git repo https://github.com/Braden-Griebel/trout
[INFO] tweaked toml for git repo https://github.com/Braden-Griebel/trout written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Braden-Griebel/trout 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" "+a26e97be8826d408309fffbd8168362365719f50" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded plist v1.7.0
[INFO] [stderr]   Downloaded quick-xml v0.32.0
[INFO] [stderr]   Downloaded syntect v5.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e3109a99c9e1a52d9487e265711e6f793d6db9cf3c4fd99eefcdd8d9c9cb7ab3
[INFO] running `Command { std: "docker" "start" "-a" "e3109a99c9e1a52d9487e265711e6f793d6db9cf3c4fd99eefcdd8d9c9cb7ab3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3109a99c9e1a52d9487e265711e6f793d6db9cf3c4fd99eefcdd8d9c9cb7ab3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3109a99c9e1a52d9487e265711e6f793d6db9cf3c4fd99eefcdd8d9c9cb7ab3", kill_on_drop: false }`
[INFO] [stdout] e3109a99c9e1a52d9487e265711e6f793d6db9cf3c4fd99eefcdd8d9c9cb7ab3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3cee1e610f1ab6b59d8467a621062e050dacf4441f3b0aa07e641bc9349f52dd
[INFO] running `Command { std: "docker" "start" "-a" "3cee1e610f1ab6b59d8467a621062e050dacf4441f3b0aa07e641bc9349f52dd", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling cc v1.1.5
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking num-conv v0.1.0
[INFO] [stderr]     Checking time-core v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.120
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking miniz_oxide v0.7.4
[INFO] [stderr]     Checking quick-xml v0.32.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]     Checking flate2 v1.0.30
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling syn v2.0.71
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]    Compiling onig_sys v69.8.1
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking indexmap v2.2.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]     Checking plist v1.7.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking regex v1.10.5
[INFO] [stderr]     Checking onig v6.4.0
[INFO] [stderr]     Checking syntect v5.2.0
[INFO] [stderr]     Checking trout v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::textbuffer::buffer::Buffer`
[INFO] [stdout]  --> src/view/modes/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::textbuffer::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::command::CommandViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::view::modes::command::CommandViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::find::FindViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::view::modes::find::FindViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::insert::InsertViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::view::modes::insert::InsertViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::jump::JumpViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::view::modes::jump::JumpViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::normal::NormalViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::view::modes::normal::NormalViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::open::OpenViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::view::modes::open::OpenViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::search::SearchViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::view::modes::search::SearchViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::select::SelectViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::view::modes::select::SelectViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::welcome_screen::WelcomeViewer`
[INFO] [stdout]   --> src/view/modes/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::view::modes::welcome_screen::WelcomeViewer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::screen::Boundary`
[INFO] [stdout]   --> src/view/modes/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::view::screen::Boundary;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/view/modes/normal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Enumerate`
[INFO] [stdout]  --> src/view/modes/normal.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::iter::Enumerate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Match`
[INFO] [stdout]  --> src/textbuffer/buffer.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use regex::{Match, Regex};
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/input/keyboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `read`
[INFO] [stdout]  --> src/input/keyboard.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers, ModifierKeyCode, read};
[INFO] [stdout]   |                        ^^^^^                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::textbuffer::buffer::Buffer`
[INFO] [stdout]  --> src/view/modes/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::textbuffer::buffer::Buffer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::command::CommandViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::view::modes::command::CommandViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::find::FindViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::view::modes::find::FindViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::insert::InsertViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::view::modes::insert::InsertViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::jump::JumpViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::view::modes::jump::JumpViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::normal::NormalViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::view::modes::normal::NormalViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::open::OpenViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::view::modes::open::OpenViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::search::SearchViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::view::modes::search::SearchViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::select::SelectViewer`
[INFO] [stdout]  --> src/view/modes/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::view::modes::select::SelectViewer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::modes::welcome_screen::WelcomeViewer`
[INFO] [stdout]   --> src/view/modes/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::view::modes::welcome_screen::WelcomeViewer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::view::screen::Boundary`
[INFO] [stdout]   --> src/view/modes/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::view::screen::Boundary;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/view/modes/normal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Enumerate`
[INFO] [stdout]  --> src/view/modes/normal.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::iter::Enumerate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Match`
[INFO] [stdout]  --> src/textbuffer/buffer.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use regex::{Match, Regex};
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/input/keyboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `read`
[INFO] [stdout]  --> src/input/keyboard.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crossterm::event::{Event, KeyCode, KeyEvent, KeyModifiers, ModifierKeyCode, read};
[INFO] [stdout]   |                        ^^^^^                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/editor.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(path: Option<&Path>)-> Editor{
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/view/modes/normal.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 Event::Resize(row, col) => {} // Nothing yet, but should resize the screen bounds
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/view/modes/normal.rs:112:36
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 Event::Resize(row, col) => {} // Nothing yet, but should resize the screen bounds
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen`
[INFO] [stdout]  --> src/view/modes/insert.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn enter(screen: &mut Screen){
[INFO] [stdout]   |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlighted`
[INFO] [stdout]    --> src/textbuffer/buffer.rs:142:23
[INFO] [stdout]     |
[INFO] [stdout] 142 |                       highlighted: bool)->&str{
[INFO] [stdout]     |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlighted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/textbuffer/lines.rs:385:13
[INFO] [stdout]     |
[INFO] [stdout] 385 |         let mut test_line = Line::from_string("€£𐍈ế"); // lengths are 3 2 4 3
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]   --> src/input/keyboard.rs:96:31
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn insert_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]   --> src/input/keyboard.rs:98:29
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn jump_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn command_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn find_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn open_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn select_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/input/keymap.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut jump:HashMap<String, ActionType> = HashMap::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/editor.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(path: Option<&Path>)-> Editor{
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/input/keymap.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut command :HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut find :HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut open:HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut select: HashMap<String, ActionType> = HashMap::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Editor` is never constructed
[INFO] [stdout]  --> src/editor.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) struct Editor {
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `open_file` are never used
[INFO] [stdout]   --> src/editor.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Editor {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(path: Option<&Path>)-> Editor{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn open_file(&mut self, file_path:PathBuf){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EditorAction` is never used
[INFO] [stdout]   --> src/editor.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum EditorAction {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/view/screen.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/view/screen.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl Screen {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 35  |     /// Create a default instance of Screen
[INFO] [stdout] 36  |     pub fn default() -> Screen {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn welcome()->Screen{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     pub fn load_file(&mut self, file_path:PathBuf){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     pub fn run(&mut self)->EditorAction{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn move_up(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87  |     pub fn move_down(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn sync_text_position_byte_to_grapheme(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn move_left(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn move_right(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn move_end_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn move_start_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn move_first_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn move_last_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn move_next_word(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn move_prev_word(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn scroll_into_view(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn delete_grapheme(&mut self, location: TextPosition){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     fn scroll_horizontal(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn scroll_vertical(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn sync_screen_position(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn view_width(&self)->usize{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn view_height(&self)->usize{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Boundary` is never constructed
[INFO] [stdout]    --> src/view/screen.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct Boundary {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/view/screen.rs:307:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | impl Boundary {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 307 |     pub fn default()-> Boundary{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/view/screen.rs:319:10
[INFO] [stdout]     |
[INFO] [stdout] 319 | pub enum Mode {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScreenAction` is never used
[INFO] [stdout]    --> src/view/screen.rs:331:10
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub enum ScreenAction {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/normal.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct NormalViewer<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `enter`, `run`, `draw`, `draw_text`, `draw_line`, and `draw_empty_line` are never used
[INFO] [stdout]    --> src/view/modes/normal.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl<'a> NormalViewer<'a> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 16  |     pub fn enter(screen: &'a mut Screen) ->ScreenAction{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25  |     pub fn run(&mut self) -> ScreenAction{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn draw(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn draw_text(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn draw_line(&mut self, screen_row: usize, text_line: usize){
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn draw_empty_line(&self, screen_row: usize){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JumpViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/jump.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct JumpViewer {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/search.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SearchViewer{
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InsertViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/insert.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct InsertViewer{
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `enter`, `draw`, and `exit` are never used
[INFO] [stdout]   --> src/view/modes/insert.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl InsertViewer {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 8  |     pub fn enter(screen: &mut Screen){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn draw(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn exit(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/command.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CommandViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FindViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/find.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FindViewer {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/open.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct OpenViewer{
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/select.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SelectViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WelcomeViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/welcome_screen.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WelcomeViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SplashArt` is never constructed
[INFO] [stdout]  --> src/view/splash_art.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct SplashArt {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]  --> src/view/splash_art.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl SplashArt {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn default()->SplashArt{
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `extension` and `path` are never read
[INFO] [stdout]   --> src/textbuffer/buffer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Buffer {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub extension: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 14 |     /// Path to where to output the buffer
[INFO] [stdout] 15 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/textbuffer/buffer.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl Buffer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 36  |     /// Create an empty buffer
[INFO] [stdout] 37  |     pub fn empty()->Buffer{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48  |     pub fn from_file(file_path: PathBuf)->Buffer{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn write_file(&self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn insert_char(&mut self, line:usize, grapheme_index: usize, character:char){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn delete_char(&mut self, line:usize, grapheme_index: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn new_line(&mut self, line:usize, grapheme_index: usize){
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn copy_text(&self, start_position: TextPosition, end_position: TextPosition)->String{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn paste_text(&mut self, start_position:TextPosition, insert_str: &str){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_line(&mut self, line: usize,
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn fix_newlines(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn lines_to_str(&self)-> String{
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `grapheme_start`, `grapheme_end`, `next_grapheme_start`, `prev_grapheme_start`, `next_grapheme_end`, and `prev_grapheme_end` are never used
[INFO] [stdout]    --> src/textbuffer/lines.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 18  | impl Line {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn next_grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn prev_grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn next_grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn prev_grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextPosition` is never constructed
[INFO] [stdout]  --> src/textbuffer/text_location.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TextPosition {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TextPosition` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/textbuffer/text_location.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TextPosition {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn default()-> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/commands/actions.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum ActionType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 8  |     // Basic Movement Controls
[INFO] [stdout] 9  |     MoveRight,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 10 |     MoveLeft,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 11 |     MoveUp,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     MoveDown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 13 |     // Change Mode Controls
[INFO] [stdout] 14 |     EnterNormal,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     EnterInsert,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     EnterJump,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     EnterCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     EnterFind,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     EnterOpen,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 20 |     // Insert Character
[INFO] [stdout] 21 |     InsertChar,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 22 |     // Cancel current action
[INFO] [stdout] 23 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]   --> src/commands/actions.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Action {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActionParam` is never used
[INFO] [stdout]   --> src/commands/actions.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ActionParam {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Size` is never constructed
[INFO] [stdout]   --> src/terminal/controls.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Size {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Size` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Terminal` is never constructed
[INFO] [stdout]   --> src/terminal/controls.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Terminal;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/terminal/controls.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout] 20  | impl Terminal {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 21  |     /// End the current terminal session, leaving alternate screen, and ensuring caret isn't hidden
[INFO] [stdout] 22  |     pub fn terminate() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31  |     pub fn initialize() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40  |     pub fn clear_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46  |     pub fn clear_line() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn clear_to_line_end()->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn move_caret_to(position: ScreenLocation)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     pub fn enter_alternate_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn leave_alternate_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76  |     pub fn hide_caret() ->Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn show_caret() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn print(string: &str) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn print_row(row:usize, line_text: &str)->Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn size() -> Result<Size, Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn bar_cursor()->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn blinking_block_cursor()-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn execute() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn queue_command<T:Command>(command:T) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/terminal/screen_location.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ScreenLocation {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 33 |     pub fn default()->Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key_map` and `input_buffer` are never read
[INFO] [stdout]   --> src/input/keyboard.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | struct KeyReader {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 9  |     key_map: KeyMap,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     input_buffer: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/input/keyboard.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl KeyReader {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 14  |     pub fn read_input(&mut self, key_event: KeyEvent, mode: Mode) -> Option<Action> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26  |     fn normal_mode(&mut self, key_event: KeyEvent) -> Option<Action> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     fn insert_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 97  |
[INFO] [stdout] 98  |     fn jump_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 99  |
[INFO] [stdout] 100 |     fn command_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 101 |
[INFO] [stdout] 102 |     fn find_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 103 |
[INFO] [stdout] 104 |     fn open_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 105 |
[INFO] [stdout] 106 |     fn select_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 107 |
[INFO] [stdout] 108 |     fn clear_input_buffer(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/input/keymap.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct KeyMap {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 5  |     pub normal: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 6  |     pub insert: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 7  |     pub jump: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 8  |     pub command: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 9  |     pub find: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 10 |     pub open: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     pub select: HashMap<String, ActionType>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/input/keymap.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl KeyMap {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     fn default()-> KeyMap {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/view/modes/normal.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 Event::Resize(row, col) => {} // Nothing yet, but should resize the screen bounds
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/view/modes/normal.rs:112:36
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 Event::Resize(row, col) => {} // Nothing yet, but should resize the screen bounds
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen`
[INFO] [stdout]  --> src/view/modes/insert.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn enter(screen: &mut Screen){
[INFO] [stdout]   |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlighted`
[INFO] [stdout]    --> src/textbuffer/buffer.rs:142:23
[INFO] [stdout]     |
[INFO] [stdout] 142 |                       highlighted: bool)->&str{
[INFO] [stdout]     |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlighted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]   --> src/input/keyboard.rs:96:31
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn insert_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]   --> src/input/keyboard.rs:98:29
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn jump_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn command_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn find_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn open_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_event`
[INFO] [stdout]    --> src/input/keyboard.rs:106:31
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn select_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/input/keymap.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut jump:HashMap<String, ActionType> = HashMap::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/input/keymap.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut command :HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut find :HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut open:HashMap<String, ActionType> = HashMap::new();
[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/input/keymap.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut select: HashMap<String, ActionType> = HashMap::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Editor` is never constructed
[INFO] [stdout]  --> src/editor.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) struct Editor {
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `open_file` are never used
[INFO] [stdout]   --> src/editor.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Editor {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(path: Option<&Path>)-> Editor{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn open_file(&mut self, file_path:PathBuf){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EditorAction` is never used
[INFO] [stdout]   --> src/editor.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum EditorAction {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/view/screen.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/view/screen.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl Screen {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 35  |     /// Create a default instance of Screen
[INFO] [stdout] 36  |     pub fn default() -> Screen {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn welcome()->Screen{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     pub fn load_file(&mut self, file_path:PathBuf){
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     pub fn run(&mut self)->EditorAction{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn move_up(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87  |     pub fn move_down(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn sync_text_position_byte_to_grapheme(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn move_left(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn move_right(&mut self)-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn move_end_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn move_start_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn move_first_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn move_last_line(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn move_next_word(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn move_prev_word(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn scroll_into_view(&mut self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn delete_grapheme(&mut self, location: TextPosition){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     fn scroll_horizontal(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn scroll_vertical(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn sync_screen_position(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn view_width(&self)->usize{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn view_height(&self)->usize{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Boundary` is never constructed
[INFO] [stdout]    --> src/view/screen.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct Boundary {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/view/screen.rs:307:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | impl Boundary {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 307 |     pub fn default()-> Boundary{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/view/screen.rs:319:10
[INFO] [stdout]     |
[INFO] [stdout] 319 | pub enum Mode {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScreenAction` is never used
[INFO] [stdout]    --> src/view/screen.rs:331:10
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub enum ScreenAction {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScreenAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/normal.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct NormalViewer<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `enter`, `run`, `draw`, `draw_text`, `draw_line`, and `draw_empty_line` are never used
[INFO] [stdout]    --> src/view/modes/normal.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl<'a> NormalViewer<'a> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 16  |     pub fn enter(screen: &'a mut Screen) ->ScreenAction{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25  |     pub fn run(&mut self) -> ScreenAction{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn draw(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn draw_text(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn draw_line(&mut self, screen_row: usize, text_line: usize){
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn draw_empty_line(&self, screen_row: usize){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JumpViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/jump.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct JumpViewer {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/search.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SearchViewer{
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InsertViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/insert.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct InsertViewer{
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `enter`, `draw`, and `exit` are never used
[INFO] [stdout]   --> src/view/modes/insert.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl InsertViewer {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 8  |     pub fn enter(screen: &mut Screen){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn draw(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn exit(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/command.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CommandViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FindViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/find.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FindViewer {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/open.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct OpenViewer{
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/select.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct SelectViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WelcomeViewer` is never constructed
[INFO] [stdout]  --> src/view/modes/welcome_screen.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WelcomeViewer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SplashArt` is never constructed
[INFO] [stdout]  --> src/view/splash_art.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct SplashArt {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]  --> src/view/splash_art.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl SplashArt {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn default()->SplashArt{
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `extension` and `path` are never read
[INFO] [stdout]   --> src/textbuffer/buffer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Buffer {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub extension: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 14 |     /// Path to where to output the buffer
[INFO] [stdout] 15 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/textbuffer/buffer.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl Buffer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 36  |     /// Create an empty buffer
[INFO] [stdout] 37  |     pub fn empty()->Buffer{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48  |     pub fn from_file(file_path: PathBuf)->Buffer{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn write_file(&self)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn insert_char(&mut self, line:usize, grapheme_index: usize, character:char){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn delete_char(&mut self, line:usize, grapheme_index: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn new_line(&mut self, line:usize, grapheme_index: usize){
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn copy_text(&self, start_position: TextPosition, end_position: TextPosition)->String{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn paste_text(&mut self, start_position:TextPosition, insert_str: &str){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_line(&mut self, line: usize,
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn fix_newlines(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn lines_to_str(&self)-> String{
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/textbuffer/lines.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout] 18  | impl Line {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 19  |     pub fn from_string(in_string: &str) -> Line {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47  |     pub fn insert_char(&mut self, grapheme_index: usize, character: char) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92  |     pub fn insert_str(&mut self, grapheme_index: usize, insert_str: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn delete_grapheme(&mut self, grapheme_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn next_grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn prev_grapheme_start(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn next_grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn prev_grapheme_end(&self, grapheme_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn text_index_to_grapheme_range(&mut self, text_index: usize) -> Range<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn text_index_to_grapheme(&self, text_index: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn split_line(&mut self, index: usize) -> Line {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn split_line_grapheme(&mut self, grapheme_index: usize) -> Line {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextPosition` is never constructed
[INFO] [stdout]  --> src/textbuffer/text_location.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TextPosition {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TextPosition` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/textbuffer/text_location.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TextPosition {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn default()-> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActionType` is never used
[INFO] [stdout]  --> src/commands/actions.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum ActionType {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ActionType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]   --> src/commands/actions.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Action {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActionParam` is never used
[INFO] [stdout]   --> src/commands/actions.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ActionParam {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Size` is never constructed
[INFO] [stdout]   --> src/terminal/controls.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Size {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Size` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Terminal` is never constructed
[INFO] [stdout]   --> src/terminal/controls.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Terminal;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.66s
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/terminal/controls.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout] 20  | impl Terminal {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 21  |     /// End the current terminal session, leaving alternate screen, and ensuring caret isn't hidden
[INFO] [stdout] 22  |     pub fn terminate() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31  |     pub fn initialize() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40  |     pub fn clear_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46  |     pub fn clear_line() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn clear_to_line_end()->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn move_caret_to(position: ScreenLocation)->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     pub fn enter_alternate_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn leave_alternate_screen() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76  |     pub fn hide_caret() ->Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     pub fn show_caret() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn print(string: &str) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn print_row(row:usize, line_text: &str)->Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn size() -> Result<Size, Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn bar_cursor()->Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn blinking_block_cursor()-> Result<(), Error>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn execute() -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn queue_command<T:Command>(command:T) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/terminal/screen_location.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ScreenLocation {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 33 |     pub fn default()->Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyReader` is never constructed
[INFO] [stdout]  --> src/input/keyboard.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct KeyReader {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/input/keyboard.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl KeyReader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 14  |     pub fn read_input(&mut self, key_event: KeyEvent, mode: Mode) -> Option<Action> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26  |     fn normal_mode(&mut self, key_event: KeyEvent) -> Option<Action> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     fn insert_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 97  |
[INFO] [stdout] 98  |     fn jump_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 99  |
[INFO] [stdout] 100 |     fn command_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 101 |
[INFO] [stdout] 102 |     fn find_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 103 |
[INFO] [stdout] 104 |     fn open_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 105 |
[INFO] [stdout] 106 |     fn select_mode(&mut self, key_event: KeyEvent)-> Option<Action>{None}
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 107 |
[INFO] [stdout] 108 |     fn clear_input_buffer(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn strip_digits(in_string: &str) -> (u16, &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyMap` is never constructed
[INFO] [stdout]  --> src/input/keymap.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct KeyMap {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/input/keymap.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl KeyMap {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     fn default()-> KeyMap {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3cee1e610f1ab6b59d8467a621062e050dacf4441f3b0aa07e641bc9349f52dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cee1e610f1ab6b59d8467a621062e050dacf4441f3b0aa07e641bc9349f52dd", kill_on_drop: false }`
[INFO] [stdout] 3cee1e610f1ab6b59d8467a621062e050dacf4441f3b0aa07e641bc9349f52dd
