[INFO] fetching crate sermon 0.1.0...
[INFO] checking sermon-0.1.0 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate sermon 0.1.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate sermon 0.1.0
[INFO] finished tweaking crates.io crate sermon 0.1.0
[INFO] tweaked toml for crates.io crate sermon 0.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate sermon 0.1.0 on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sermon 0.1.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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:46:1
[INFO] [stderr]    |
[INFO] [stderr] 46 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `sermon` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ratatui-termion v0.1.2
[INFO] [stderr]   Downloaded termion v4.0.6
[INFO] [stderr]   Downloaded numtoa v0.2.4
[INFO] [stderr]   Downloaded rusqlite v0.40.2
[INFO] [stderr]   Downloaded libsqlite3-sys v0.38.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0
[INFO] running `Command { std: "docker" "start" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0", 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" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0", 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" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:46:1
[INFO] [stderr]    |
[INFO] [stderr] 46 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `sermon` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking line-clipping v0.3.5
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]     Checking indenter v0.3.4
[INFO] [stderr]     Checking hashlink v0.12.1
[INFO] [stderr]     Checking smawk v0.3.2
[INFO] [stderr]     Checking unicode-linebreak v0.1.5
[INFO] [stderr]     Checking object v0.37.3
[INFO] [stderr]     Checking textwrap v0.16.2
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking tracing-error v0.2.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking unescaper v0.1.8
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking libudev v0.3.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking serialport v4.9.0
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking color-eyre v0.6.5
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking ratatui-core v0.1.2
[INFO] [stderr]     Checking ratatui-widgets v0.3.2
[INFO] [stderr]     Checking ratatui-crossterm v0.1.2
[INFO] [stderr]     Checking ratatui-macros v0.7.2
[INFO] [stderr]     Checking ratatui v0.30.2
[INFO] [stderr]     Checking rusqlite v0.40.2
[INFO] [stderr]     Checking sermon v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/components/list_scroll_view.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     default,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/components/list_scroll_view.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     selection_filter: Option<Box<dyn Fn(&T) -> (bool)>>,
[INFO] [stdout]    |                                                ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 31 -     selection_filter: Option<Box<dyn Fn(&T) -> (bool)>>,
[INFO] [stdout] 31 +     selection_filter: Option<Box<dyn Fn(&T) -> bool>>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileType`
[INFO] [stdout]  --> src/views/database_selection.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     fs::{self, DirEntry, FileType},
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders`, `ListItem`, `List`, `Margin`, and `Span`
[INFO] [stdout]   --> src/views/database_selection.rs:14:56
[INFO] [stdout]    |
[INFO] [stdout] 14 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     text::{Line, Span},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 18 |     widgets::{Block, Borders, List, ListItem, Paragraph, StatefulWidget, Widget},
[INFO] [stdout]    |                      ^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/components/list_scroll_view.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     default,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/components/list_scroll_view.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     selection_filter: Option<Box<dyn Fn(&T) -> (bool)>>,
[INFO] [stdout]    |                                                ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 31 -     selection_filter: Option<Box<dyn Fn(&T) -> (bool)>>,
[INFO] [stdout] 31 +     selection_filter: Option<Box<dyn Fn(&T) -> bool>>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileType`
[INFO] [stdout]  --> src/views/database_selection.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     fs::{self, DirEntry, FileType},
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders`, `ListItem`, `List`, `Margin`, and `Span`
[INFO] [stdout]   --> src/views/database_selection.rs:14:56
[INFO] [stdout]    |
[INFO] [stdout] 14 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     text::{Line, Span},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 18 |     widgets::{Block, Borders, List, ListItem, Paragraph, StatefulWidget, Widget},
[INFO] [stdout]    |                      ^^^^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/components/log_view.rs:315:37
[INFO] [stdout]     |
[INFO] [stdout] 315 |     fn handle_mouse_move(&mut self, col: u16, row: u16) -> bool {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/components/log_view.rs:315:47
[INFO] [stdout]     |
[INFO] [stdout] 315 |     fn handle_mouse_move(&mut self, col: u16, row: u16) -> bool {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/components/log_view.rs:315:37
[INFO] [stdout]     |
[INFO] [stdout] 315 |     fn handle_mouse_move(&mut self, col: u16, row: u16) -> bool {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/components/log_view.rs:315:47
[INFO] [stdout]     |
[INFO] [stdout] 315 |     fn handle_mouse_move(&mut self, col: u16, row: u16) -> bool {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/user_input.rs:385:38
[INFO] [stdout]     |
[INFO] [stdout] 385 |     fn handle_mouse_event(&mut self, event: ratatui::crossterm::event::MouseEvent) -> EventResult {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/user_input.rs:385:38
[INFO] [stdout]     |
[INFO] [stdout] 385 |     fn handle_mouse_event(&mut self, event: ratatui::crossterm::event::MouseEvent) -> EventResult {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_emit` is assigned to, but never used
[INFO] [stdout]    --> src/serial.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut last_emit = std::time::Instant::now();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_emit` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_emit` is never read
[INFO] [stdout]    --> src/serial.rs:324:41
[INFO] [stdout]     |
[INFO] [stdout] 324 | ...                       last_emit = std::time::Instant::now();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 332 | ...                   last_emit = std::time::Instant::now();
[INFO] [stdout]     |                       ------------------------------------- `last_emit` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_emit` is never read
[INFO] [stdout]    --> src/serial.rs:332:37
[INFO] [stdout]     |
[INFO] [stdout] 332 | ...                   last_emit = std::time::Instant::now();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_emit` is assigned to, but never used
[INFO] [stdout]    --> src/serial.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut last_emit = std::time::Instant::now();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_emit` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_emit` is never read
[INFO] [stdout]    --> src/serial.rs:324:41
[INFO] [stdout]     |
[INFO] [stdout] 324 | ...                       last_emit = std::time::Instant::now();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 332 | ...                   last_emit = std::time::Instant::now();
[INFO] [stdout]     |                       ------------------------------------- `last_emit` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_emit` is never read
[INFO] [stdout]    --> src/serial.rs:332:37
[INFO] [stdout]     |
[INFO] [stdout] 332 | ...                   last_emit = std::time::Instant::now();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/components/checkbox.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Checkbox {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Checkbox` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_widget` and `handle_keys` are never used
[INFO] [stdout]   --> src/components/checkbox.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Checkbox {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn render_widget(&self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn handle_keys(&mut self, key_event: KeyEvent) -> Option<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadTimeout`, `ResetOnStart`, `DTR`, and `RTS` are never constructed
[INFO] [stdout]   --> src/components/config.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ConfigFocus {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     ReadTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 69 |     ResetOnStart,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 70 |     DTR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     RTS,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigFocus` 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: method `with_max_visible` is never used
[INFO] [stdout]   --> src/components/drop_down.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<T: fmt::Display + PartialEq> Dropdown<T> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_max_visible(mut self, n: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warn` is never constructed
[INFO] [stdout]   --> src/components/notification.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Level {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] 33 |     Info,
[INFO] [stdout] 34 |     Warn,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Level` 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: methods `with_on_change` and `set_default` are never used
[INFO] [stdout]    --> src/components/user_input.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl UserInput {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_on_change(mut self, f: impl Fn(&str) + 'static) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn set_default(&mut self, text: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackedValue` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum TrackedValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueTrackerState` is never constructed
[INFO] [stdout]   --> src/components/value_tracker.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ValueTrackerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ValueTrackerState {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(config: Arc<Mutex<Config>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]  --> src/config.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Config {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub debug: bool,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` 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: associated items `variants` and `next` are never used
[INFO] [stdout]   --> src/serial.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl LineEndingMode {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn variants() -> &'static [Self] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dtr` and `rts` are never read
[INFO] [stdout]    --> src/serial.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub struct PortConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub dtr: bool, // Data Terminal Ready
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 107 |     pub rts: bool, // Request To Send
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortConfig` 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: associated constant `TABLE` is never used
[INFO] [stdout]   --> src/store.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> LogEntry<'a> {
[INFO] [stdout]    | --------------------- associated constant in this implementation
[INFO] [stdout] 16 |     pub const TABLE: &'static str = "logs";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `session` are never read
[INFO] [stdout]   --> src/store.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct LogRecord {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 35 |     pub session: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogRecord` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_logs_txt`, `export_logs_csv`, and `export_table_csv` are never used
[INFO] [stdout]    --> src/store.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl LogStore {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn export_logs_txt(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn export_logs_csv(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn export_table_csv(&self, table: &str, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/views/database_selection.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct StoredState {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     config: Arc<Mutex<Config>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoredState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/components/checkbox.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Checkbox {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Checkbox` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_widget` and `handle_keys` are never used
[INFO] [stdout]   --> src/components/checkbox.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Checkbox {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn render_widget(&self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn handle_keys(&mut self, key_event: KeyEvent) -> Option<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadTimeout`, `ResetOnStart`, `DTR`, and `RTS` are never constructed
[INFO] [stdout]   --> src/components/config.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ConfigFocus {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     ReadTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 69 |     ResetOnStart,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 70 |     DTR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     RTS,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigFocus` 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: method `with_max_visible` is never used
[INFO] [stdout]   --> src/components/drop_down.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<T: fmt::Display + PartialEq> Dropdown<T> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_max_visible(mut self, n: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warn` is never constructed
[INFO] [stdout]   --> src/components/notification.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Level {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] 33 |     Info,
[INFO] [stdout] 34 |     Warn,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Level` 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: methods `with_on_change` and `set_default` are never used
[INFO] [stdout]    --> src/components/user_input.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl UserInput {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_on_change(mut self, f: impl Fn(&str) + 'static) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn set_default(&mut self, text: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackedValue` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum TrackedValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueTrackerState` is never constructed
[INFO] [stdout]   --> src/components/value_tracker.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ValueTrackerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ValueTrackerState {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(config: Arc<Mutex<Config>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]  --> src/config.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Config {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub debug: bool,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` 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: associated items `variants` and `next` are never used
[INFO] [stdout]   --> src/serial.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl LineEndingMode {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn variants() -> &'static [Self] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dtr` and `rts` are never read
[INFO] [stdout]    --> src/serial.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub struct PortConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub dtr: bool, // Data Terminal Ready
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 107 |     pub rts: bool, // Request To Send
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortConfig` 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: associated constant `TABLE` is never used
[INFO] [stdout]   --> src/store.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> LogEntry<'a> {
[INFO] [stdout]    | --------------------- associated constant in this implementation
[INFO] [stdout] 16 |     pub const TABLE: &'static str = "logs";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `session` are never read
[INFO] [stdout]   --> src/store.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct LogRecord {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 35 |     pub session: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogRecord` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_logs_txt`, `export_logs_csv`, and `export_table_csv` are never used
[INFO] [stdout]    --> src/store.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl LogStore {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn export_logs_txt(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn export_logs_csv(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn export_table_csv(&self, table: &str, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/views/database_selection.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct StoredState {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     config: Arc<Mutex<Config>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StoredState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.59s
[INFO] running `Command { std: "docker" "inspect" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0", kill_on_drop: false }`
[INFO] [stdout] b67df390f8b492a030740365c8d8a3da8b33909148430c14f915563fbf5023e0
