[INFO] cloning repository https://github.com/dheerajgopi/termide
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dheerajgopi/termide" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdheerajgopi%2Ftermide", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdheerajgopi%2Ftermide'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bf3e837cd0919bcb745e554b4cfb034155e1799d
[INFO] checking dheerajgopi/termide against e3d12f3322cb00126b2208c6b9df3ac4467951f5 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdheerajgopi%2Ftermide" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dheerajgopi/termide
[INFO] finished tweaking git repo https://github.com/dheerajgopi/termide
[INFO] tweaked toml for git repo https://github.com/dheerajgopi/termide written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dheerajgopi/termide on toolchain e3d12f3322cb00126b2208c6b9df3ac4467951f5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dheerajgopi/termide 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" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded toml_writer v1.0.4
[INFO] [stderr]   Downloaded toml v0.9.8
[INFO] [stderr]   Downloaded serde_spanned v1.0.3
[INFO] [stderr]   Downloaded str_indices v0.4.4
[INFO] [stderr]   Downloaded notify-debouncer-mini v0.7.0
[INFO] [stderr]   Downloaded ropey v1.6.1
[INFO] [stderr]   Downloaded dirs-sys v0.5.0
[INFO] [stderr]   Downloaded notify-types v2.0.0
[INFO] [stderr]   Downloaded xcursor v0.3.10
[INFO] [stderr]   Downloaded castaway v0.2.4
[INFO] [stderr]   Downloaded winapi-wsapoll v0.1.2
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded copypasta v0.8.2
[INFO] [stderr]   Downloaded clipboard-win v3.1.1
[INFO] [stderr]   Downloaded indoc v2.0.7
[INFO] [stderr]   Downloaded document-features v0.2.12
[INFO] [stderr]   Downloaded option-ext v0.2.0
[INFO] [stderr]   Downloaded instability v0.3.9
[INFO] [stderr]   Downloaded wayland-sys v0.29.5
[INFO] [stderr]   Downloaded downcast-rs v1.2.1
[INFO] [stderr]   Downloaded lazy-bytes-cast v5.0.1
[INFO] [stderr]   Downloaded x11-clipboard v0.7.1
[INFO] [stderr]   Downloaded gethostname v0.2.3
[INFO] [stderr]   Downloaded dlib v0.5.2
[INFO] [stderr]   Downloaded scoped-tls v1.0.1
[INFO] [stderr]   Downloaded wayland-cursor v0.29.5
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded convert_case v0.7.1
[INFO] [stderr]   Downloaded redox_users v0.5.2
[INFO] [stderr]   Downloaded wayland-commons v0.29.5
[INFO] [stderr]   Downloaded objc v0.2.7
[INFO] [stderr]   Downloaded kqueue v1.1.1
[INFO] [stderr]   Downloaded inotify v0.11.0
[INFO] [stderr]   Downloaded smithay-clipboard v0.6.6
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded notify v8.2.0
[INFO] [stderr]   Downloaded dirs v6.0.0
[INFO] [stderr]   Downloaded wayland-scanner v0.29.5
[INFO] [stderr]   Downloaded litrs v1.0.0
[INFO] [stderr]   Downloaded xml-rs v0.8.28
[INFO] [stderr]   Downloaded signal-hook v0.3.18
[INFO] [stderr]   Downloaded compact_str v0.8.1
[INFO] [stderr]   Downloaded wayland-client v0.29.5
[INFO] [stderr]   Downloaded wayland-protocols v0.29.5
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.16.1
[INFO] [stderr]   Downloaded crossterm v0.29.0
[INFO] [stderr]   Downloaded x11rb v0.10.1
[INFO] [stderr]   Downloaded unicode-width v0.2.0
[INFO] [stderr]   Downloaded unicode-width v0.1.14
[INFO] [stderr]   Downloaded x11rb-protocol v0.10.0
[INFO] [stderr]   Downloaded ratatui v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa
[INFO] running `Command { std: "docker" "start" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]     Checking xcursor v0.3.10
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling instability v0.3.9
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking notify-types v2.0.0
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking toml_writer v1.0.4
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking str_indices v0.4.4
[INFO] [stderr]     Checking ropey v1.6.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking inotify v0.11.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking toml_parser v1.0.4
[INFO] [stderr]     Checking serde_spanned v1.0.3
[INFO] [stderr]     Checking toml_datetime v0.7.3
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking notify-debouncer-mini v0.7.0
[INFO] [stderr]     Checking toml v0.9.8
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking x11rb-protocol v0.10.0
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking termide-plugin-api v0.1.0 (/opt/rustwide/workdir/crates/termide-plugin-api)
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking x11rb v0.10.1
[INFO] [stderr]     Checking x11-clipboard v0.7.1
[INFO] [stderr]     Checking smithay-clipboard v0.6.6
[INFO] [stderr]     Checking copypasta v0.8.2
[INFO] [stderr]     Checking termide v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `renderer::Renderer`
[INFO] [stdout]   --> src/ui/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use renderer::Renderer;
[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 variable: `f_num`
[INFO] [stdout]    --> tests/integration_tests.rs:476:61
[INFO] [stdout]     |
[INFO] [stdout] 476 |     for (key_str, cmd_str, _expected_plugin, _expected_cmd, f_num) in &bindings {
[INFO] [stdout]     |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_f_num`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `renderer::Renderer`
[INFO] [stdout]   --> src/ui/mod.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub use renderer::Renderer;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Buffer` is never constructed
[INFO] [stdout]   --> src/buffer/buffer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Buffer {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/buffer/buffer.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Buffer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn from_str(content: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn insert_char(&mut self, ch: char, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn delete_char_at(&mut self, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn delete_forward(&mut self, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn get_line_start(&self, pos: Position) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn get_line_end(&self, pos: Position) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn page_up(&self, pos: Position, viewport_height: usize) -> Position {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn page_down(&self, pos: Position, viewport_height: usize) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn clamp_column_to_line(&self, line: usize, column: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn content(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn line_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn get_line(&self, line: usize) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn line_len(&self, line: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn clear_dirty(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn set_dirty(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn file_path(&self) -> Option<&PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn set_file_path(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn is_valid_position(&self, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn clamp_position(&self, pos: Position) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn position_to_char_idx(&self, pos: Position) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn len_chars(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn selection(&self) -> Option<&Selection> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     pub fn set_selection(&mut self, selection: Option<Selection>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub fn selected_text(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     pub fn delete_selection(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     pub fn end_position(&self) -> Position {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/buffer/position.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Position {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `origin` are never used
[INFO] [stdout]   --> src/buffer/position.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Position {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn new(line: usize, column: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn origin() -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Selection` is never constructed
[INFO] [stdout]   --> src/buffer/selection.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Selection {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/buffer/selection.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl Selection {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn new(pos: Position) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn with_anchor_and_cursor(anchor: Position, cursor: Position) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn anchor(&self) -> Position {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn cursor(&self) -> Position {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn range(&self) -> (Position, Position) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn contains(&self, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn extend_to(self, pos: Position) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn clear(self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseModeError` is never constructed
[INFO] [stdout]  --> src/editor/editor_mode.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ParseModeError {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EditorMode` is never used
[INFO] [stdout]   --> src/editor/editor_mode.rs:47:10
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum EditorMode {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]   --> src/editor/editor_mode.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl EditorMode {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn to_string(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorState` is never constructed
[INFO] [stdout]   --> src/editor/editor_state.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct EditorState {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/editor/editor_state.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl EditorState {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn from_file(path: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn buffer(&self) -> &Buffer {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn buffer_mut(&mut self) -> &mut Buffer {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn mode(&self) -> EditorMode {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn set_mode(&mut self, mode: EditorMode) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn status_message(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn set_status_message(&mut self, message: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn clear_status_message(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn should_quit(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn request_quit(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn force_quit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn handle_char_insert(&mut self, ch: char, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn handle_char_delete(&mut self, pos: Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn set_file_path(&mut self, path: &Path) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn prompt_input(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn prompt_message(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn enter_prompt(&mut self, message: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn prompt_insert_char(&mut self, ch: char) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn prompt_delete_char(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn accept_prompt(&mut self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn cancel_prompt(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn save(&mut self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn save_as(&mut self, path: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]   --> src/file_io/read.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn read_file(path: &Path) -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_file` is never used
[INFO] [stdout]   --> src/file_io/write.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn write_file(path: &Path, content: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_default_bindings` is never used
[INFO] [stdout]   --> src/input/bindings.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn register_default_bindings(registry: &mut KeyBindingRegistry) -> Result<(), BindingError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `global_bindings` is never used
[INFO] [stdout]    --> src/input/bindings.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn global_bindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_mode_bindings` is never used
[INFO] [stdout]    --> src/input/bindings.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn insert_mode_bindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normal_mode_bindings` is never used
[INFO] [stdout]    --> src/input/bindings.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn normal_mode_bindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prompt_mode_bindings` is never used
[INFO] [stdout]    --> src/input/bindings.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn prompt_mode_bindings() -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arrow_key_navigation` is never used
[INFO] [stdout]    --> src/input/bindings.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub fn arrow_key_navigation(modes: Vec<EditorMode>) -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `navigation_commands` is never used
[INFO] [stdout]    --> src/input/bindings.rs:431:8
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub fn navigation_commands(modes: Vec<EditorMode>) -> Vec<KeyBinding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EditorCommand` is never used
[INFO] [stdout]   --> src/input/command.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum EditorCommand {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CommandParseError` is never used
[INFO] [stdout]    --> src/input/command.rs:362:10
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub enum CommandParseError {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_plugin_command` is never used
[INFO] [stdout]    --> src/input/command.rs:540:4
[INFO] [stdout]     |
[INFO] [stdout] 540 | fn parse_plugin_command(s: &str) -> Result<EditorCommand, CommandParseError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadResult` is never constructed
[INFO] [stdout]   --> src/input/config.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct LoadResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConfigError` is never used
[INFO] [stdout]   --> src/input/config.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub enum ConfigError {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeybindingConfig` is never constructed
[INFO] [stdout]    --> src/input/config.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct KeybindingConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserBinding` is never constructed
[INFO] [stdout]    --> src/input/config.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct UserBinding {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_user_keybindings` is never used
[INFO] [stdout]    --> src/input/config.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn load_user_keybindings(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_single_binding` is never used
[INFO] [stdout]    --> src/input/config.rs:295:4
[INFO] [stdout]     |
[INFO] [stdout] 295 | fn load_single_binding(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_mode` is never used
[INFO] [stdout]    --> src/input/config.rs:347:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub fn parse_mode(s: &str) -> Result<EditorMode, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_parse_error` is never used
[INFO] [stdout]    --> src/input/config.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn format_parse_error(error: &ParseError) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_command_error` is never used
[INFO] [stdout]    --> src/input/config.rs:369:4
[INFO] [stdout]     |
[INFO] [stdout] 369 | fn format_command_error(error: &CommandParseError) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_user_keybindings` is never used
[INFO] [stdout]    --> src/input/config.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn reload_user_keybindings(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_config_path` is never used
[INFO] [stdout]    --> src/input/config.rs:486:8
[INFO] [stdout]     |
[INFO] [stdout] 486 | pub fn get_config_path() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/input/direction.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum Direction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MatchResult` is never used
[INFO] [stdout]    --> src/input/input_handler.rs:175:10
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub enum MatchResult {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InputHandler` is never constructed
[INFO] [stdout]    --> src/input/input_handler.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct InputHandler {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/input/input_handler.rs:231:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl InputHandler {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn with_timeout(timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn register_binding(&mut self, binding: KeyBinding) -> Result<(), BindingError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn registry_mut(&mut self) -> &mut KeyBindingRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub fn process_key_event(&mut self, event: KeyEvent, mode: EditorMode) -> MatchResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn on_mode_change(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |     pub fn check_timeout(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIMARY_MODIFIER` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub const PRIMARY_MODIFIER: KeyModifiers = KeyModifiers::CONTROL;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyPattern` is never constructed
[INFO] [stdout]    --> src/input/keybinding.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct KeyPattern {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `matches` are never used
[INFO] [stdout]    --> src/input/keybinding.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl KeyPattern {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn new(code: KeyCode, modifiers: KeyModifiers) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn matches(&self, event: &KeyEvent) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeySequence` is never constructed
[INFO] [stdout]    --> src/input/keybinding.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct KeySequence {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `is_empty`, `matches`, and `is_partial_match` are never used
[INFO] [stdout]    --> src/input/keybinding.rs:307:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl KeySequence {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn new(patterns: Vec<KeyPattern>) -> Option<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn matches(&self, buffer: &[KeyPattern]) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub fn is_partial_match(&self, buffer: &[KeyPattern]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:458:10
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub enum ParseError {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_key_pattern` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:573:4
[INFO] [stdout]     |
[INFO] [stdout] 573 | fn parse_key_pattern(s: &str) -> Result<KeyPattern, ParseError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_modifier` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:604:4
[INFO] [stdout]     |
[INFO] [stdout] 604 | fn parse_modifier(s: &str) -> Result<KeyModifiers, ParseError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_key_code` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:615:4
[INFO] [stdout]     |
[INFO] [stdout] 615 | fn parse_key_code(s: &str) -> Result<KeyCode, ParseError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BindingContext` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:693:10
[INFO] [stdout]     |
[INFO] [stdout] 693 | pub enum BindingContext {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:772:12
[INFO] [stdout]     |
[INFO] [stdout] 724 | impl BindingContext {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 772 |     pub fn is_active(&self, current_mode: EditorMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:818:10
[INFO] [stdout]     |
[INFO] [stdout] 818 | pub enum Priority {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyBinding` is never constructed
[INFO] [stdout]    --> src/input/keybinding.rs:859:12
[INFO] [stdout]     |
[INFO] [stdout] 859 | pub struct KeyBinding {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `sequence`, `command`, `context`, and `priority` are never used
[INFO] [stdout]    --> src/input/keybinding.rs:908:12
[INFO] [stdout]     |
[INFO] [stdout] 870 | impl KeyBinding {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 908 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 923 |     pub fn sequence(&self) -> &KeySequence {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 928 |     pub fn command(&self) -> &EditorCommand {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 933 |     pub fn context(&self) -> &BindingContext {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 938 |     pub fn priority(&self) -> Priority {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BindingError` is never used
[INFO] [stdout]    --> src/input/registry.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum BindingError {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyBindingRegistry` is never constructed
[INFO] [stdout]    --> src/input/registry.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct KeyBindingRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/input/registry.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl KeyBindingRegistry {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn new(timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn register(&mut self, binding: KeyBinding) -> Result<(), BindingError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn unregister(&mut self, sequence: &KeySequence, context: &BindingContext) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn unregister_by_priority(&mut self, priority: Priority) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn add_to_sequence(&mut self, pattern: KeyPattern) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     pub fn find_match(&self, current_mode: EditorMode) -> Option<&EditorCommand> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 542 |     pub fn is_partial_match(&self, current_mode: EditorMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 585 |     pub fn check_timeout(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     pub fn clear_sequence(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_plugin_context_to_core` is never used
[INFO] [stdout]    --> src/input/registry.rs:755:4
[INFO] [stdout]     |
[INFO] [stdout] 755 | fn convert_plugin_context_to_core(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_plugin_mode_to_core` is never used
[INFO] [stdout]    --> src/input/registry.rs:774:4
[INFO] [stdout]     |
[INFO] [stdout] 774 | fn convert_plugin_mode_to_core(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigWatcher` is never constructed
[INFO] [stdout]   --> src/input/watcher.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct ConfigWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check_for_changes` are never used
[INFO] [stdout]    --> src/input/watcher.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ConfigWatcher {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn new(config_path: &Path) -> Result<Self, notify::Error> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn check_for_changes(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_frame_impl` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn render_frame_impl(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_text_area` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn render_text_area(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_status_bar` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn render_status_bar(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cursor_screen_position` is never used
[INFO] [stdout]    --> src/ui/renderer.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn calculate_cursor_screen_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]    --> src/ui/renderer.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub struct Renderer {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/renderer.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | impl Renderer {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn with_theme(theme: Theme) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn restore_terminal(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn render(&mut self, state: &EditorState, cursor_pos: Position) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn adjust_scroll(&mut self, cursor_pos: Position, terminal_height: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn calculate_frame_hash(&self, state: &EditorState, cursor_pos: Position) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn force_render(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn theme(&self) -> &Theme {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn set_theme(&mut self, theme: Theme) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Theme` is never constructed
[INFO] [stdout]   --> src/ui/theme.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct Theme {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `dark`, `light`, and `selection_color` are never used
[INFO] [stdout]    --> src/ui/theme.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl Theme {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn dark() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn light() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn selection_color(&self, is_active: bool) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_dirty` is never used
[INFO] [stdout]    --> src/buffer/buffer.rs:366:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Buffer {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn set_dirty(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_as` is never used
[INFO] [stdout]    --> src/editor/editor_state.rs:379:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl EditorState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn save_as(&mut self, path: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PromptInsertChar` is never constructed
[INFO] [stdout]    --> src/input/command.rs:292:5
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub enum EditorCommand {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 292 |     PromptInsertChar(char),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EditorCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidParameter` is never constructed
[INFO] [stdout]    --> src/input/command.rs:373:5
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub enum CommandParseError {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 373 |     InvalidParameter {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CommandParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `warnings` is never read
[INFO] [stdout]   --> src/input/config.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct LoadResult {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub warnings: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoadResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BindingConflict` is never constructed
[INFO] [stdout]    --> src/input/config.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ConfigError {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 105 |     BindingConflict {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_user_keybindings` is never used
[INFO] [stdout]    --> src/input/config.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn reload_user_keybindings(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_config_path` is never used
[INFO] [stdout]    --> src/input/config.rs:486:8
[INFO] [stdout]     |
[INFO] [stdout] 486 | pub fn get_config_path() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/input/keybinding.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl KeySequence {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidSequence` and `InvalidContext` are never constructed
[INFO] [stdout]    --> src/input/registry.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum BindingError {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 138 |     InvalidSequence(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     InvalidContext(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BindingError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigWatcher` is never constructed
[INFO] [stdout]   --> src/input/watcher.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct ConfigWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check_for_changes` are never used
[INFO] [stdout]    --> src/input/watcher.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ConfigWatcher {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn new(config_path: &Path) -> Result<Self, notify::Error> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn check_for_changes(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_frame_impl` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn render_frame_impl(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_text_area` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn render_text_area(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_status_bar` is never used
[INFO] [stdout]   --> src/ui/renderer.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn render_status_bar(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cursor_screen_position` is never used
[INFO] [stdout]    --> src/ui/renderer.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn calculate_cursor_screen_position(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]    --> src/ui/renderer.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub struct Renderer {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/renderer.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | impl Renderer {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn with_theme(theme: Theme) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn restore_terminal(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn render(&mut self, state: &EditorState, cursor_pos: Position) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn adjust_scroll(&mut self, cursor_pos: Position, terminal_height: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn calculate_frame_hash(&self, state: &EditorState, cursor_pos: Position) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn scroll_offset(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub fn set_scroll_offset(&mut self, offset: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn force_render(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn theme(&self) -> &Theme {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn set_theme(&mut self, theme: Theme) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.05s
[INFO] running `Command { std: "docker" "inspect" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa", kill_on_drop: false }`
[INFO] [stdout] 8db597a9b730a5276fdf98029fcc00615fd615b43a7f5a1ccc19e0fb4ce82cfa
