[INFO] fetching crate odo 0.2.0...
[INFO] checking odo-0.2.0 against 1.95.0-beta.7 for beta-1.95-4
[INFO] extracting crate odo 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate odo 0.2.0
[INFO] finished tweaking crates.io crate odo 0.2.0
[INFO] tweaked toml for crates.io crate odo 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate odo 0.2.0 on toolchain 1.95.0-beta.7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0-beta.7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate odo 0.2.0 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" "+1.95.0-beta.7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 93c125e46ec72e07b77821ce1846ee9ddf7afdc5fae9145fdb28d65e39e42475
[INFO] running `Command { std: "docker" "start" "-a" "93c125e46ec72e07b77821ce1846ee9ddf7afdc5fae9145fdb28d65e39e42475", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93c125e46ec72e07b77821ce1846ee9ddf7afdc5fae9145fdb28d65e39e42475", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93c125e46ec72e07b77821ce1846ee9ddf7afdc5fae9145fdb28d65e39e42475", kill_on_drop: false }`
[INFO] [stdout] 93c125e46ec72e07b77821ce1846ee9ddf7afdc5fae9145fdb28d65e39e42475
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d76b142534085ae8924b287df8c9fd41d48cae2d272dbca7277f382b303a4ddc
[INFO] running `Command { std: "docker" "start" "-a" "d76b142534085ae8924b287df8c9fd41d48cae2d272dbca7277f382b303a4ddc", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling winnow v0.7.6
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling cc v1.2.17
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking wayland-sys v0.31.6
[INFO] [stderr]    Compiling quick-xml v0.37.4
[INFO] [stderr]    Compiling wayland-client v0.31.8
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling wayland-scanner v0.31.6
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking async-executor v1.13.1
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking io-lifetimes v1.0.11
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]    Compiling wayland-backend v0.3.8
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]     Checking async-once-cell v0.5.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]    Compiling tree-sitter v0.20.10
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]    Compiling rfd v0.13.0
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]    Compiling odo v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking numtoa v0.2.4
[INFO] [stderr]     Checking termion v4.0.5
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_edit v0.22.24
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling toml v0.8.20
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling enumflags2_derive v0.7.11
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking arboard v3.5.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking ecolor v0.25.0
[INFO] [stderr]     Checking polling v3.7.4
[INFO] [stderr]     Checking emath v0.25.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking epaint v0.25.0
[INFO] [stderr]     Checking wayland-cursor v0.31.8
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking wayland-protocols v0.32.6
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking egui v0.25.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking egui_glow v0.25.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking enumflags2 v0.7.11
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.6
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking egui-winit v0.25.0
[INFO] [stderr]     Checking eframe v0.25.0
[INFO] [stdout] warning: unused import: `SearchDirection`
[INFO] [stdout]  --> src/editor/editor_interface.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Document, Position, SearchDirection};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Motion`, `Operator`, and `TextObject`
[INFO] [stdout]  --> src/ui/terminal/terminal_editor.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::editor::{EditorInterface, Mode, StatusMessage, CommandState, Motion, Operator, TextObject};
[INFO] [stdout]   |                                                                         ^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Row`
[INFO] [stdout]  --> src/ui/common/ui_interface.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Document, Position, Row};
[INFO] [stdout]   |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SearchDirection`
[INFO] [stdout]  --> src/editor/editor_interface.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Document, Position, SearchDirection};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Motion`, `Operator`, and `TextObject`
[INFO] [stdout]  --> src/ui/terminal/terminal_editor.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::editor::{EditorInterface, Mode, StatusMessage, CommandState, Motion, Operator, TextObject};
[INFO] [stdout]   |                                                                         ^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Row`
[INFO] [stdout]  --> src/ui/common/ui_interface.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::core::{Document, Position, Row};
[INFO] [stdout]   |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/row.rs:455:13
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let mut in_ml_comment = start_with_comment;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/core/row.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         opts: &HighlightingOptions,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `index` is assigned to, but never used
[INFO] [stdout]    --> src/core/row.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |         let mut index = 0;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_index` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `index` is never read
[INFO] [stdout]    --> src/core/row.rs:465:13
[INFO] [stdout]     |
[INFO] [stdout] 465 |             index = closing_index;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/core/position.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Position {
[INFO] [stdout]   | ------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new(x: usize, y: usize) -> 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: function `is_separator` is never used
[INFO] [stdout]    --> src/core/row.rs:499:4
[INFO] [stdout]     |
[INFO] [stdout] 499 | fn is_separator(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]  --> src/core/filetype.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct HighlightingOptions {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 2 |     numbers: bool,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 3 |     strings: bool,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 4 |     characters: bool,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     comments: bool,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     multiline_comments: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     primary_keywords: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     secondary_keywords: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/core/filetype.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl HighlightingOptions {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 26 |     pub fn numbers(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn strings(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn characters(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn comments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn multiline_comments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn primary_keywords(&self) -> &Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn secondary_keywords(&self) -> &Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/core/highlighting.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout]  5 |     None,
[INFO] [stdout]  6 |     Number,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  7 |     Match,
[INFO] [stdout]  8 |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  9 |     Character,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 10 |     Comment,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 11 |     MultilineComment,
[INFO] [stdout] 12 |     PrimaryKeywords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     SecondaryKeywords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     OrgCodeBlock,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` 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: methods `get_document`, `get_document_mut`, `get_cursor_position`, `get_mode`, and `set_status_message` are never used
[INFO] [stdout]   --> src/editor/editor_interface.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait EditorInterface {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn get_document(&self) -> &Document;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 17 |     fn get_document_mut(&mut self) -> &mut Document;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     fn get_cursor_position(&self) -> Position;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     fn get_mode(&self) -> Mode;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn set_status_message(&mut self, message: StatusMessage);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push`, `is_empty`, `set_start_position`, `get_start_position`, and `as_string` are never used
[INFO] [stdout]    --> src/editor/command.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl CommandState {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn push(&mut self, c: char) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn set_start_position(&mut self, position: Position) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_start_position(&self) -> Option<Position> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn as_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TextObject` is never used
[INFO] [stdout]    --> src/editor/command.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum TextObject {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]    --> src/editor/command.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum Operator {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Motion` is never used
[INFO] [stdout]    --> src/editor/command.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub enum Motion {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `cursor_show`, `draw_welcome_message`, and `draw_row` are never used
[INFO] [stdout]    --> src/ui/terminal/terminal.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Terminal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn cursor_show() -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn draw_welcome_message(&self) -> Result<(), std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn draw_row(&self, row: &Row, offset: &Position) -> Result<(), std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATUS_FG_COLOR` is never used
[INFO] [stdout]    --> src/ui/terminal/terminal_editor.rs:204:15
[INFO] [stdout]     |
[INFO] [stdout] 204 |         const STATUS_FG_COLOR: color::Rgb = color::Rgb(63, 63, 63);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATUS_BG_COLOR` is never used
[INFO] [stdout]    --> src/ui/terminal/terminal_editor.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 |         const STATUS_BG_COLOR: color::Rgb = color::Rgb(239, 239, 239);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_size` is never read
[INFO] [stdout]   --> src/ui/gui/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct GuiEditor {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     window_size: (usize, usize),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/gui/mod.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl GuiEditor {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/ui/common/ui_interface.rs:7:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait UserInterface {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout]  6 |     // Drawing operations
[INFO] [stdout]  7 |     fn draw_rows(&self, document: &Document, offset: &Position) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]  8 |     fn draw_status_bar(&self, document: &Document, cursor_position: &Position, status: &str) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     fn draw_message_bar(&self, message: &StatusMessage) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     fn clear_screen(&self) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn read_key(&self) -> Result<char, std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn cursor_hide(&self) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn size(&self) -> (usize, usize); // width, height
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Theme` is never constructed
[INFO] [stdout]   --> src/ui/common/theme.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Theme {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/row.rs:455:13
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let mut in_ml_comment = start_with_comment;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/core/row.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         opts: &HighlightingOptions,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `index` is assigned to, but never used
[INFO] [stdout]    --> src/core/row.rs:454:13
[INFO] [stdout]     |
[INFO] [stdout] 454 |         let mut index = 0;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_index` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `index` is never read
[INFO] [stdout]    --> src/core/row.rs:465:13
[INFO] [stdout]     |
[INFO] [stdout] 465 |             index = closing_index;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/core/position.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Position {
[INFO] [stdout]   | ------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new(x: usize, y: usize) -> 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: function `is_separator` is never used
[INFO] [stdout]    --> src/core/row.rs:499:4
[INFO] [stdout]     |
[INFO] [stdout] 499 | fn is_separator(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]  --> src/core/filetype.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct HighlightingOptions {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 2 |     numbers: bool,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 3 |     strings: bool,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 4 |     characters: bool,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 5 |     comments: bool,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     multiline_comments: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     primary_keywords: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     secondary_keywords: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/core/filetype.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl HighlightingOptions {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] 26 |     pub fn numbers(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn strings(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn characters(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn comments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn multiline_comments(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn primary_keywords(&self) -> &Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn secondary_keywords(&self) -> &Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/core/highlighting.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout]  5 |     None,
[INFO] [stdout]  6 |     Number,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  7 |     Match,
[INFO] [stdout]  8 |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  9 |     Character,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 10 |     Comment,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 11 |     MultilineComment,
[INFO] [stdout] 12 |     PrimaryKeywords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     SecondaryKeywords,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     OrgCodeBlock,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` 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: methods `get_document`, `get_document_mut`, `get_cursor_position`, `get_mode`, and `set_status_message` are never used
[INFO] [stdout]   --> src/editor/editor_interface.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait EditorInterface {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn get_document(&self) -> &Document;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 17 |     fn get_document_mut(&mut self) -> &mut Document;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     fn get_cursor_position(&self) -> Position;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     fn get_mode(&self) -> Mode;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn set_status_message(&mut self, message: StatusMessage);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push`, `is_empty`, `set_start_position`, `get_start_position`, and `as_string` are never used
[INFO] [stdout]    --> src/editor/command.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl CommandState {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn push(&mut self, c: char) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn set_start_position(&mut self, position: Position) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_start_position(&self) -> Option<Position> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn as_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TextObject` is never used
[INFO] [stdout]    --> src/editor/command.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub enum TextObject {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]    --> src/editor/command.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum Operator {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Motion` is never used
[INFO] [stdout]    --> src/editor/command.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub enum Motion {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `cursor_show`, `draw_welcome_message`, and `draw_row` are never used
[INFO] [stdout]    --> src/ui/terminal/terminal.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl Terminal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn cursor_show() -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn draw_welcome_message(&self) -> Result<(), std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn draw_row(&self, row: &Row, offset: &Position) -> Result<(), std::io::Error> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATUS_FG_COLOR` is never used
[INFO] [stdout]    --> src/ui/terminal/terminal_editor.rs:204:15
[INFO] [stdout]     |
[INFO] [stdout] 204 |         const STATUS_FG_COLOR: color::Rgb = color::Rgb(63, 63, 63);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATUS_BG_COLOR` is never used
[INFO] [stdout]    --> src/ui/terminal/terminal_editor.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 |         const STATUS_BG_COLOR: color::Rgb = color::Rgb(239, 239, 239);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_size` is never read
[INFO] [stdout]   --> src/ui/gui/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct GuiEditor {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     window_size: (usize, usize),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/gui/mod.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl GuiEditor {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/ui/common/ui_interface.rs:7:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait UserInterface {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout]  6 |     // Drawing operations
[INFO] [stdout]  7 |     fn draw_rows(&self, document: &Document, offset: &Position) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]  8 |     fn draw_status_bar(&self, document: &Document, cursor_position: &Position, status: &str) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     fn draw_message_bar(&self, message: &StatusMessage) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     fn clear_screen(&self) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn read_key(&self) -> Result<char, std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn cursor_hide(&self) -> Result<(), std::io::Error>;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn size(&self) -> (usize, usize); // width, height
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Theme` is never constructed
[INFO] [stdout]   --> src/ui/common/theme.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Theme {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "d76b142534085ae8924b287df8c9fd41d48cae2d272dbca7277f382b303a4ddc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d76b142534085ae8924b287df8c9fd41d48cae2d272dbca7277f382b303a4ddc", kill_on_drop: false }`
[INFO] [stdout] d76b142534085ae8924b287df8c9fd41d48cae2d272dbca7277f382b303a4ddc
