[INFO] cloning repository https://github.com/Wang-Yang-source/piopulse
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Wang-Yang-source/piopulse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWang-Yang-source%2Fpiopulse", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWang-Yang-source%2Fpiopulse'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6268f576236ebb55822692a67b62e029a88ea2f2
[INFO] checking Wang-Yang-source/piopulse against master#df1ae0f7dd168513de2d89beb2cb7a95d4fdc118 for pr-159343
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWang-Yang-source%2Fpiopulse" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Wang-Yang-source/piopulse
[INFO] finished tweaking git repo https://github.com/Wang-Yang-source/piopulse
[INFO] tweaked toml for git repo https://github.com/Wang-Yang-source/piopulse written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Wang-Yang-source/piopulse on toolchain df1ae0f7dd168513de2d89beb2cb7a95d4fdc118
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Wang-Yang-source/piopulse 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" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "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 probe-rs-target v0.31.0
[INFO] [stderr]   Downloaded libudev v0.3.0
[INFO] [stderr]   Downloaded uf2-decode v0.2.0
[INFO] [stderr]   Downloaded jep106 v0.3.0
[INFO] [stderr]   Downloaded nusb v0.2.3
[INFO] [stderr]   Downloaded basic-udev v0.1.2
[INFO] [stderr]   Downloaded docsplay v0.1.3
[INFO] [stderr]   Downloaded docsplay-macros v0.1.2
[INFO] [stderr]   Downloaded slip-codec v0.4.0
[INFO] [stderr]   Downloaded ihex v3.0.0
[INFO] [stderr]   Downloaded reed-solomon v0.2.1
[INFO] [stderr]   Downloaded no_std_io2 v0.8.1
[INFO] [stderr]   Downloaded deku_derive v0.18.1
[INFO] [stderr]   Downloaded cobs v0.5.1
[INFO] [stderr]   Downloaded io-kit-sys v0.5.0
[INFO] [stderr]   Downloaded esp-idf-part v0.6.0
[INFO] [stderr]   Downloaded deku v0.18.1
[INFO] [stderr]   Downloaded hidapi v2.6.6
[INFO] [stderr]   Downloaded object v0.39.1
[INFO] [stderr]   Downloaded probe-rs v0.31.0
[INFO] [stderr]   Downloaded espflash v4.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac
[INFO] running `Command { std: "docker" "start" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac", 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" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac", 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" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking hybrid-array v0.4.12
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking no_std_io2 v0.8.1
[INFO] [stderr]     Checking libudev-sys v0.1.4
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling object v0.39.1
[INFO] [stderr]    Compiling unty v0.0.4
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking const-oid v0.10.2
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]     Checking twox-hash v2.1.2
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling heapless v0.9.3
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking ruzstd v0.8.3
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking parse_int v0.9.0
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]     Checking serde_plain v1.0.2
[INFO] [stderr]     Checking libudev v0.3.0
[INFO] [stderr]    Compiling hidapi v2.6.6
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking unescaper v0.1.8
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]     Checking toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling object v0.38.1
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking toml v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking serialport v4.9.0
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking md-5 v0.11.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking rmp v0.8.15
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking jep106 v0.3.0
[INFO] [stderr]     Checking serde_with v3.21.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking miette v7.6.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling bitfield-macros v0.19.4
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling docsplay-macros v0.1.2
[INFO] [stderr]     Checking basic-udev v0.1.2
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking unicode-segmentation v1.13.3
[INFO] [stderr]     Checking slip-codec v0.4.0
[INFO] [stderr]     Checking reed-solomon v0.2.1
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling bincode v2.0.1
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking bitfield v0.19.4
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]     Checking docsplay v0.1.3
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking probe-rs-target v0.31.0
[INFO] [stderr]     Checking cobs v0.5.1
[INFO] [stderr]     Checking rmp-serde v1.3.1
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking ihex v3.0.0
[INFO] [stderr]     Checking scroll v0.13.0
[INFO] [stderr]     Checking uf2-decode v0.2.0
[INFO] [stderr]     Checking dunce v1.0.5
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]    Compiling deku_derive v0.18.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking nusb v0.2.3
[INFO] [stderr]     Checking ratatui v0.26.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking deku v0.18.1
[INFO] [stderr]    Compiling probe-rs v0.31.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking esp-idf-part v0.6.0
[INFO] [stderr]     Checking espflash v4.4.0
[INFO] [stderr]     Checking piopulse v1.0.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `widget_add_modal` is never read
[INFO] [stdout]   --> src/app.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct LayoutZones {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub widget_add_modal: Rect,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LayoutZones` has derived impls for the traits `Clone` and `Debug`, but these are 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: multiple variants are never constructed
[INFO] [stdout]    --> src/app.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub enum WidgetType {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 203 |     Cube,
[INFO] [stdout] 204 |     Image,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 205 |     Button,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 206 |     Slider,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 207 |     Dial,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 208 |     Joystick,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 209 |     Light,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 210 |     Gauge,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 211 |     Dashboard,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 212 |     Example,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 213 |     Delay,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 214 |     Toggle,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 215 |     Knob,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 216 |     Ring,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 217 |     Pad,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WidgetType` 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: variants `AddCatalog`, `Button`, `Slider`, `Dashboard`, `Image`, and `Cube` are never constructed
[INFO] [stdout]    --> src/app.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub enum DashboardEmptyAction {
[INFO] [stdout]     |          -------------------- variants in this enum
[INFO] [stdout] 222 |     AddCatalog,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 223 |     Button,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 224 |     Slider,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 225 |     Dashboard,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 226 |     Image,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 227 |     Cube,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DashboardEmptyAction` 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: constant `PARAM_SLIDER_LABEL_WIDTH` is never used
[INFO] [stdout]    --> src/app.rs:237:11
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub const PARAM_SLIDER_LABEL_WIDTH: u16 = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SLIDER_TRACK_WIDTH` is never used
[INFO] [stdout]    --> src/app.rs:238:11
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub const PARAM_SLIDER_TRACK_WIDTH: u16 = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SLIDER_LAST_OFFSET` is never used
[INFO] [stdout]    --> src/app.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub const PARAM_SLIDER_LAST_OFFSET: u16 = PARAM_SLIDER_TRACK_WIDTH - 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/app.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct App {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub param_kp: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 335 |     pub param_ki: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 336 |     pub param_kd: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 337 |     pub param_knob: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 338 |     pub param_target_speed: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 339 |     pub motor_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 340 |     pub sim_motor_speed: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 341 |     pub sim_pid_out: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 342 |     pub sim_battery_voltage: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 343 |     pub widget_focus: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_slider_param_from_col` is never used
[INFO] [stdout]     --> src/app.rs:3073:8
[INFO] [stdout]      |
[INFO] [stdout]  398 | impl App {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3073 |     fn set_slider_param_from_col(&mut self, slider_idx: usize, inner_x: u16, col: u16) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_dashboard_action_at` is never used
[INFO] [stdout]     --> src/app.rs:3908:4
[INFO] [stdout]      |
[INFO] [stdout] 3908 | fn empty_dashboard_action_at(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_for_empty_action` is never used
[INFO] [stdout]     --> src/app.rs:3937:4
[INFO] [stdout]      |
[INFO] [stdout] 3937 | fn widget_for_empty_action(action: DashboardEmptyAction) -> Option<WidgetType> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_control_at` is never used
[INFO] [stdout]     --> src/app.rs:3948:4
[INFO] [stdout]      |
[INFO] [stdout] 3948 | fn widget_control_at(widget: WidgetType, pane: Rect, col: u16, row: u16) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECT_CONFIG_FIELD_COUNT` is never used
[INFO] [stdout]  --> src/config.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const PROJECT_CONFIG_FIELD_COUNT: usize = 33;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_progress_bar` is never used
[INFO] [stdout]    --> src/ui/channels.rs:492:4
[INFO] [stdout]     |
[INFO] [stdout] 492 | fn make_progress_bar(pct: u8, width: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flash_usable_status` is never used
[INFO] [stdout]    --> src/ui/channels.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn flash_usable_status(channel: &Channel, lang: &str) -> (&'static str, Style) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `qa_style` is never used
[INFO] [stdout]    --> src/ui/channels.rs:620:4
[INFO] [stdout]     |
[INFO] [stdout] 620 | fn qa_style(value: &str) -> Style {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_button_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:665:4
[INFO] [stdout]     |
[INFO] [stdout] 665 | fn draw_button_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_button_style` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:743:4
[INFO] [stdout]     |
[INFO] [stdout] 743 | fn widget_button_style(color: ratatui::style::Color, hovered: bool) -> Style {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_control_line_style` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:754:4
[INFO] [stdout]     |
[INFO] [stdout] 754 | fn widget_control_line_style(hovered: bool) -> Style {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_slider_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:764:4
[INFO] [stdout]     |
[INFO] [stdout] 764 | fn draw_slider_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_dial_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:867:4
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn draw_dial_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_joystick_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1052:4
[INFO] [stdout]      |
[INFO] [stdout] 1052 | fn draw_joystick_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_light_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1132:4
[INFO] [stdout]      |
[INFO] [stdout] 1132 | fn draw_light_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_gauge_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1181:4
[INFO] [stdout]      |
[INFO] [stdout] 1181 | fn draw_gauge_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_dashboard_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1241:4
[INFO] [stdout]      |
[INFO] [stdout] 1241 | fn draw_dashboard_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_example_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1332:4
[INFO] [stdout]      |
[INFO] [stdout] 1332 | fn draw_example_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_delay_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1394:4
[INFO] [stdout]      |
[INFO] [stdout] 1394 | fn draw_delay_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_toggle_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1458:4
[INFO] [stdout]      |
[INFO] [stdout] 1458 | fn draw_toggle_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_knob_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1518:4
[INFO] [stdout]      |
[INFO] [stdout] 1518 | fn draw_knob_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ring_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1593:4
[INFO] [stdout]      |
[INFO] [stdout] 1593 | fn draw_ring_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_pad_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1655:4
[INFO] [stdout]      |
[INFO] [stdout] 1655 | fn draw_pad_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pane_layouts` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1743:8
[INFO] [stdout]      |
[INFO] [stdout] 1743 | pub fn get_pane_layouts(area: Rect, count: usize) -> Vec<Rect> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_rect` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1838:4
[INFO] [stdout]      |
[INFO] [stdout] 1838 | fn center_rect(percent_x: u16, height_y: u16, r: Rect) -> Rect {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_vertex` is never used
[INFO] [stdout]   --> src/ui/widgets/cube.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn project_vertex(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]   --> src/ui/widgets/cube.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn draw(f: &mut Frame, app: &App, area: Rect, is_focused: bool, _widget_idx: usize) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]   --> src/ui/widgets/image.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn draw(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `widget_add_modal` is never read
[INFO] [stdout]   --> src/app.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct LayoutZones {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub widget_add_modal: Rect,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LayoutZones` has derived impls for the traits `Clone` and `Debug`, but these are 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: multiple variants are never constructed
[INFO] [stdout]    --> src/app.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub enum WidgetType {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 203 |     Cube,
[INFO] [stdout] 204 |     Image,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 205 |     Button,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 206 |     Slider,
[INFO] [stdout] 207 |     Dial,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 208 |     Joystick,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 209 |     Light,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 210 |     Gauge,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 211 |     Dashboard,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 212 |     Example,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 213 |     Delay,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 214 |     Toggle,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 215 |     Knob,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 216 |     Ring,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 217 |     Pad,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WidgetType` 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: variants `AddCatalog`, `Button`, `Slider`, `Dashboard`, `Image`, and `Cube` are never constructed
[INFO] [stdout]    --> src/app.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub enum DashboardEmptyAction {
[INFO] [stdout]     |          -------------------- variants in this enum
[INFO] [stdout] 222 |     AddCatalog,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 223 |     Button,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 224 |     Slider,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 225 |     Dashboard,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 226 |     Image,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 227 |     Cube,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DashboardEmptyAction` 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: constant `PARAM_SLIDER_LABEL_WIDTH` is never used
[INFO] [stdout]    --> src/app.rs:237:11
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub const PARAM_SLIDER_LABEL_WIDTH: u16 = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SLIDER_TRACK_WIDTH` is never used
[INFO] [stdout]    --> src/app.rs:238:11
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub const PARAM_SLIDER_TRACK_WIDTH: u16 = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SLIDER_LAST_OFFSET` is never used
[INFO] [stdout]    --> src/app.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub const PARAM_SLIDER_LAST_OFFSET: u16 = PARAM_SLIDER_TRACK_WIDTH - 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/app.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct App {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub param_knob: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 338 |     pub param_target_speed: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 339 |     pub motor_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 340 |     pub sim_motor_speed: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 341 |     pub sim_pid_out: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 342 |     pub sim_battery_voltage: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 343 |     pub widget_focus: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_slider_param_from_col` is never used
[INFO] [stdout]     --> src/app.rs:3073:8
[INFO] [stdout]      |
[INFO] [stdout]  398 | impl App {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3073 |     fn set_slider_param_from_col(&mut self, slider_idx: usize, inner_x: u16, col: u16) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_dashboard_action_at` is never used
[INFO] [stdout]     --> src/app.rs:3908:4
[INFO] [stdout]      |
[INFO] [stdout] 3908 | fn empty_dashboard_action_at(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_for_empty_action` is never used
[INFO] [stdout]     --> src/app.rs:3937:4
[INFO] [stdout]      |
[INFO] [stdout] 3937 | fn widget_for_empty_action(action: DashboardEmptyAction) -> Option<WidgetType> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_control_at` is never used
[INFO] [stdout]     --> src/app.rs:3948:4
[INFO] [stdout]      |
[INFO] [stdout] 3948 | fn widget_control_at(widget: WidgetType, pane: Rect, col: u16, row: u16) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECT_CONFIG_FIELD_COUNT` is never used
[INFO] [stdout]  --> src/config.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const PROJECT_CONFIG_FIELD_COUNT: usize = 33;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_progress_bar` is never used
[INFO] [stdout]    --> src/ui/channels.rs:492:4
[INFO] [stdout]     |
[INFO] [stdout] 492 | fn make_progress_bar(pct: u8, width: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flash_usable_status` is never used
[INFO] [stdout]    --> src/ui/channels.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn flash_usable_status(channel: &Channel, lang: &str) -> (&'static str, Style) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `qa_style` is never used
[INFO] [stdout]    --> src/ui/channels.rs:620:4
[INFO] [stdout]     |
[INFO] [stdout] 620 | fn qa_style(value: &str) -> Style {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_button_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:665:4
[INFO] [stdout]     |
[INFO] [stdout] 665 | fn draw_button_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_button_style` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:743:4
[INFO] [stdout]     |
[INFO] [stdout] 743 | fn widget_button_style(color: ratatui::style::Color, hovered: bool) -> Style {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `widget_control_line_style` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:754:4
[INFO] [stdout]     |
[INFO] [stdout] 754 | fn widget_control_line_style(hovered: bool) -> Style {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_slider_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:764:4
[INFO] [stdout]     |
[INFO] [stdout] 764 | fn draw_slider_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_dial_widget` is never used
[INFO] [stdout]    --> src/ui/widgets/mod.rs:867:4
[INFO] [stdout]     |
[INFO] [stdout] 867 | fn draw_dial_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_joystick_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1052:4
[INFO] [stdout]      |
[INFO] [stdout] 1052 | fn draw_joystick_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_light_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1132:4
[INFO] [stdout]      |
[INFO] [stdout] 1132 | fn draw_light_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_gauge_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1181:4
[INFO] [stdout]      |
[INFO] [stdout] 1181 | fn draw_gauge_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_dashboard_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1241:4
[INFO] [stdout]      |
[INFO] [stdout] 1241 | fn draw_dashboard_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_example_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1332:4
[INFO] [stdout]      |
[INFO] [stdout] 1332 | fn draw_example_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_delay_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1394:4
[INFO] [stdout]      |
[INFO] [stdout] 1394 | fn draw_delay_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_toggle_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1458:4
[INFO] [stdout]      |
[INFO] [stdout] 1458 | fn draw_toggle_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_knob_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1518:4
[INFO] [stdout]      |
[INFO] [stdout] 1518 | fn draw_knob_widget(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ring_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1593:4
[INFO] [stdout]      |
[INFO] [stdout] 1593 | fn draw_ring_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_pad_widget` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1655:4
[INFO] [stdout]      |
[INFO] [stdout] 1655 | fn draw_pad_widget(f: &mut Frame, _app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pane_layouts` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1743:8
[INFO] [stdout]      |
[INFO] [stdout] 1743 | pub fn get_pane_layouts(area: Rect, count: usize) -> Vec<Rect> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_rect` is never used
[INFO] [stdout]     --> src/ui/widgets/mod.rs:1838:4
[INFO] [stdout]      |
[INFO] [stdout] 1838 | fn center_rect(percent_x: u16, height_y: u16, r: Rect) -> Rect {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_vertex` is never used
[INFO] [stdout]   --> src/ui/widgets/cube.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn project_vertex(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]   --> src/ui/widgets/cube.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn draw(f: &mut Frame, app: &App, area: Rect, is_focused: bool, _widget_idx: usize) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]   --> src/ui/widgets/image.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn draw(f: &mut Frame, app: &App, area: Rect, is_focused: bool) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac", kill_on_drop: false }`
[INFO] [stdout] 58bd8715206fa287a234dd04298863f57e6304c48018b84cedb9c087a84a2aac
