[INFO] cloning repository https://github.com/RudolfVonKrugstein/streamdeck-controller-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RudolfVonKrugstein/streamdeck-controller-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRudolfVonKrugstein%2Fstreamdeck-controller-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRudolfVonKrugstein%2Fstreamdeck-controller-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 853e42c8da5578bf019c85e1227ae32fe22f4820 [INFO] testing RudolfVonKrugstein/streamdeck-controller-rs against beta-2022-02-22 for beta-1.60-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRudolfVonKrugstein%2Fstreamdeck-controller-rs" "/workspace/builds/worker-6/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/RudolfVonKrugstein/streamdeck-controller-rs on toolchain beta-2022-02-22 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-02-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/RudolfVonKrugstein/streamdeck-controller-rs [INFO] finished tweaking git repo https://github.com/RudolfVonKrugstein/streamdeck-controller-rs [INFO] tweaked toml for git repo https://github.com/RudolfVonKrugstein/streamdeck-controller-rs written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/RudolfVonKrugstein/streamdeck-controller-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-02-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/image-rs/imageproc` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded termtree v0.2.4 [INFO] [stderr] Downloaded difflib v0.4.0 [INFO] [stderr] Downloaded predicates-core v1.0.3 [INFO] [stderr] Downloaded mockall_derive v0.11.0 [INFO] [stderr] Downloaded fragile v1.1.0 [INFO] [stderr] Downloaded float-cmp v0.9.0 [INFO] [stderr] Downloaded downcast v0.11.0 [INFO] [stderr] Downloaded predicates v2.1.1 [INFO] [stderr] Downloaded predicates-tree v1.0.5 [INFO] [stderr] Downloaded mockall v0.11.0 [INFO] [stderr] Downloaded hidapi v1.3.3 [INFO] [stderr] Downloaded image v0.24.1 [INFO] [stderr] Downloaded streamdeck-hid-rs v0.1.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9ef035157a0a728cd3fb2decf88fbd846a0094b578c8ab0d67ade533ea91b767 [INFO] running `Command { std: "docker" "start" "-a" "9ef035157a0a728cd3fb2decf88fbd846a0094b578c8ab0d67ade533ea91b767", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9ef035157a0a728cd3fb2decf88fbd846a0094b578c8ab0d67ade533ea91b767", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ef035157a0a728cd3fb2decf88fbd846a0094b578c8ab0d67ade533ea91b767", kill_on_drop: false }` [INFO] [stdout] 9ef035157a0a728cd3fb2decf88fbd846a0094b578c8ab0d67ade533ea91b767 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2fedab598b65c56635c7e59ba3df0ce9ea607f955c7691d0d00b66f2eefcef4c [INFO] running `Command { std: "docker" "start" "-a" "2fedab598b65c56635c7e59ba3df0ce9ea607f955c7691d0d00b66f2eefcef4c", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libc v0.2.119 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.7 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling crossbeam-epoch v0.9.7 [INFO] [stderr] Compiling syn v1.0.86 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling bytemuck v1.7.3 [INFO] [stderr] Compiling weezl v0.1.5 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling matrixmultiply v0.1.15 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling rawpointer v0.1.0 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling predicates-core v1.0.3 [INFO] [stderr] Compiling futures-sink v0.3.21 [INFO] [stderr] Compiling typenum v1.15.0 [INFO] [stderr] Compiling custom_derive v0.1.7 [INFO] [stderr] Compiling pkg-config v0.3.24 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.5 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling half v1.8.2 [INFO] [stderr] Compiling termtree v0.2.4 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Compiling lebe v0.5.1 [INFO] [stderr] Compiling paste v1.0.6 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling bit_field v0.10.1 [INFO] [stderr] Compiling smallvec v1.8.0 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling fragile v1.1.0 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling ryu v1.0.9 [INFO] [stderr] Compiling more-asserts v0.2.2 [INFO] [stderr] Compiling miniz_oxide v0.3.7 [INFO] [stderr] Compiling deflate v1.0.0 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling lock_api v0.4.6 [INFO] [stderr] Compiling matrixmultiply v0.3.2 [INFO] [stderr] Compiling itertools v0.10.3 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Compiling miniz_oxide v0.5.1 [INFO] [stderr] Compiling safe_arch v0.6.0 [INFO] [stderr] Compiling conv v0.3.3 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling gif v0.11.3 [INFO] [stderr] Compiling deflate v0.8.6 [INFO] [stderr] Compiling predicates-tree v1.0.5 [INFO] [stderr] Compiling spin v0.9.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling num-bigint v0.3.3 [INFO] [stderr] Compiling num-bigint v0.4.3 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling num-rational v0.4.0 [INFO] [stderr] Compiling indexmap v1.8.0 [INFO] [stderr] Compiling png v0.17.3 [INFO] [stderr] Compiling crossbeam-channel v0.5.2 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling wide v0.7.4 [INFO] [stderr] Compiling png v0.16.8 [INFO] [stderr] Compiling hidapi v1.3.3 [INFO] [stderr] Compiling quote v1.0.15 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling getrandom v0.2.5 [INFO] [stderr] Compiling crossbeam-deque v0.8.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling nanorand v0.6.1 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling flate2 v1.0.22 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling num-complex v0.4.0 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling float-cmp v0.9.0 [INFO] [stderr] Compiling num-complex v0.3.1 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling simba v0.7.1 [INFO] [stderr] Compiling rulinalg v0.4.2 [INFO] [stderr] Compiling predicates v2.1.1 [INFO] [stderr] Compiling rand_distr v0.2.2 [INFO] [stderr] Compiling num v0.4.0 [INFO] [stderr] Compiling jpeg-decoder v0.1.22 [INFO] [stderr] Compiling jpeg-decoder v0.2.2 [INFO] [stderr] Compiling num v0.3.1 [INFO] [stderr] Compiling tiff v0.6.1 [INFO] [stderr] Compiling tiff v0.7.1 [INFO] [stderr] Compiling image v0.23.14 [INFO] [stderr] Compiling pin-project-internal v1.0.10 [INFO] [stderr] Compiling mockall_derive v0.11.0 [INFO] [stderr] Compiling pin-project v1.0.10 [INFO] [stderr] Compiling flume v0.10.11 [INFO] [stderr] Compiling nalgebra v0.30.1 [INFO] [stderr] Compiling exr v1.4.1 [INFO] [stderr] Compiling imageproc v0.22.0 [INFO] [stderr] Compiling mockall v0.11.0 [INFO] [stderr] Compiling image v0.24.1 [INFO] [stderr] Compiling serde_yaml v0.8.23 [INFO] [stderr] Compiling streamdeck-hid-rs v0.1.1 [INFO] [stderr] Compiling imageproc v0.22.0 (https://github.com/image-rs/imageproc#cd5f4973) [INFO] [stderr] Compiling streamdeck-controller-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::config::ButtonPositionConfig` [INFO] [stdout] --> src/state/button_position.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::config::ButtonPositionConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::button_position::PositionFromBorder::FromEnd` [INFO] [stdout] --> src/state/button_position.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::state::button_position::PositionFromBorder::FromEnd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | for mut button in &mut self.buttons { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_image_rgba_color` [INFO] [stdout] --> src/config/color.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn to_image_rgba_color(&self) -> Result, error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `InvalidColorHexString` [INFO] [stdout] --> src/config/error.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | InvalidColorHexString(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/config/error.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `AppState` [INFO] [stdout] --> src/state/app_state.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | struct AppState { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config` [INFO] [stdout] --> src/state/app_state.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn from_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_button_pressed` [INFO] [stdout] --> src/state/app_state.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | fn on_button_pressed(&mut self, button_id: usize) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_button_released` [INFO] [stdout] --> src/state/app_state.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | fn on_button_released(&mut self, button_id: usize) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_rendered_and_get_rendering_faces` [INFO] [stdout] --> src/state/app_state.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | fn set_rendered_and_get_rendering_faces(&mut self) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `load_page` [INFO] [stdout] --> src/state/app_state.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | fn load_page(&mut self, page_name: String) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ButtonSetup` [INFO] [stdout] --> src/state/button.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ButtonSetup { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_optional_name_config` [INFO] [stdout] --> src/state/button.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn from_optional_name_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config_with_name` [INFO] [stdout] --> src/state/button.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn from_config_with_name( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ButtonSetupOrName` [INFO] [stdout] --> src/state/button.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum ButtonSetupOrName { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config_with_named_button` [INFO] [stdout] --> src/state/button.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn from_config_with_named_button( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Down` [INFO] [stdout] --> src/state/button.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | Down, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `PressState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/button.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | #[derive(PartialEq, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Up` [INFO] [stdout] --> src/state/button.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | Up, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: `PressState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/button.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | #[derive(PartialEq, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ButtonState` [INFO] [stdout] --> src/state/button.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct ButtonState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state/button.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 174 | pub fn new(setup: ButtonSetupOrName) -> ButtonState { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `empty` [INFO] [stdout] --> src/state/button.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn empty() -> ButtonState { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_pressed` [INFO] [stdout] --> src/state/button.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn set_pressed( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_released` [INFO] [stdout] --> src/state/button.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub fn set_released( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `needs_rendering` [INFO] [stdout] --> src/state/button.rs:211:12 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn needs_rendering(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_setup` [INFO] [stdout] --> src/state/button.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | fn get_setup( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_setup` [INFO] [stdout] --> src/state/button.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn set_setup(&mut self, setup: &ButtonSetupOrName) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_rendered_and_get_face_for_rendering` [INFO] [stdout] --> src/state/button.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | pub fn set_rendered_and_get_face_for_rendering( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ButtonFace` [INFO] [stdout] --> src/state/button_face.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct ButtonFace { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config` [INFO] [stdout] --> src/state/button_face.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn from_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `find_text_scale` [INFO] [stdout] --> src/state/button_face.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn find_text_scale( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `TextPosition` [INFO] [stdout] --> src/state/button_face.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | enum TextPosition { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `draw_positioned_colored_text` [INFO] [stdout] --> src/state/button_face.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn draw_positioned_colored_text( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `FromStart` [INFO] [stdout] --> src/state/button_position.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | FromStart(u8), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `PositionFromBorder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/button_position.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(PartialEq, Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `FromEnd` [INFO] [stdout] --> src/state/button_position.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | FromEnd(u8), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `PositionFromBorder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/button_position.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(PartialEq, Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_array_index` [INFO] [stdout] --> src/state/button_position.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn from_array_index(index: i32) -> PositionFromBorder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ButtonPosition` [INFO] [stdout] --> src/state/button_position.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct ButtonPosition { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config` [INFO] [stdout] --> src/state/button_position.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn from_config(config: &config::ButtonPositionConfig) -> ButtonPosition { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_button_index` [INFO] [stdout] --> src/state/button_position.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn to_button_index(&self, device_type: &StreamDeckType) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ImageOpeningError` [INFO] [stdout] --> src/state/error.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | ImageOpeningError(io::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/error.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ImageEncodingError` [INFO] [stdout] --> src/state/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | ImageEncodingError(ImageError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/error.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ConfigError` [INFO] [stdout] --> src/state/error.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | ConfigError(crate::config::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/error.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `PageNotFound` [INFO] [stdout] --> src/state/error.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | PageNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/error.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `LoadScriptFailed` [INFO] [stdout] --> src/state/error.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | LoadScriptFailed(std::io::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/state/error.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `EventHandler` [INFO] [stdout] --> src/state/event_handler.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct EventHandler { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config` [INFO] [stdout] --> src/state/event_handler.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn from_config(config: &config::EventHandlerConfig) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Page` [INFO] [stdout] --> src/state/page/mod.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Page { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config_with_named_buttons` [INFO] [stdout] --> src/state/page/mod.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn from_config_with_named_buttons( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `PositionedButtonSetup` [INFO] [stdout] --> src/state/page/positioned_button_setup.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct PositionedButtonSetup { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_config_with_named_button` [INFO] [stdout] --> src/state/page/positioned_button_setup.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn from_config_with_named_button( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 51 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 52.87s [INFO] running `Command { std: "docker" "inspect" "2fedab598b65c56635c7e59ba3df0ce9ea607f955c7691d0d00b66f2eefcef4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2fedab598b65c56635c7e59ba3df0ce9ea607f955c7691d0d00b66f2eefcef4c", kill_on_drop: false }` [INFO] [stdout] 2fedab598b65c56635c7e59ba3df0ce9ea607f955c7691d0d00b66f2eefcef4c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71fcc954513deaea7ba6503822c10a29d74fe863c2af7bfbef2cdb8a9d1591d6 [INFO] running `Command { std: "docker" "start" "-a" "71fcc954513deaea7ba6503822c10a29d74fe863c2af7bfbef2cdb8a9d1591d6", kill_on_drop: false }` [INFO] [stderr] Compiling streamdeck-controller-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::state::button_position::PositionFromBorder::FromEnd` [INFO] [stdout] --> src/state/button_position.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::state::button_position::PositionFromBorder::FromEnd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::Unexpected::Str` [INFO] [stdout] --> src/state/button_position.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | use serde::de::Unexpected::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/state/app_state.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | let result = state.load_page(String::from("page1")); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `object` [INFO] [stdout] --> src/state/page/positioned_button_setup.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | let object = [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_object` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state/app_state.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | for mut button in &mut self.buttons { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `device_type` [INFO] [stdout] --> src/state/button_face.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | device_type: streamdeck_hid_rs::StreamDeckType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 8.62s [INFO] running `Command { std: "docker" "inspect" "71fcc954513deaea7ba6503822c10a29d74fe863c2af7bfbef2cdb8a9d1591d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71fcc954513deaea7ba6503822c10a29d74fe863c2af7bfbef2cdb8a9d1591d6", kill_on_drop: false }` [INFO] [stdout] 71fcc954513deaea7ba6503822c10a29d74fe863c2af7bfbef2cdb8a9d1591d6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-02-22" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4747d1f6ef4ca91efb0251205c3e798945c60d6092356c1aaa321f4825a7406b [INFO] running `Command { std: "docker" "start" "-a" "4747d1f6ef4ca91efb0251205c3e798945c60d6092356c1aaa321f4825a7406b", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::state::button_position::PositionFromBorder::FromEnd` [INFO] [stderr] --> src/state/button_position.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::state::button_position::PositionFromBorder::FromEnd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::de::Unexpected::Str` [INFO] [stderr] --> src/state/button_position.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | use serde::de::Unexpected::Str; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/state/app_state.rs:345:13 [INFO] [stderr] | [INFO] [stderr] 345 | let result = state.load_page(String::from("page1")); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `object` [INFO] [stderr] --> src/state/page/positioned_button_setup.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | let object = [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_object` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/state/app_state.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/state/app_state.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let mut button = self.buttons.get_mut(button_id)?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/state/app_state.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | for mut button in &mut self.buttons { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `device_type` [INFO] [stderr] --> src/state/button_face.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | device_type: streamdeck_hid_rs::StreamDeckType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `streamdeck-controller-rs` (bin "streamdeck-controller-rs" test) generated 8 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/streamdeck_controller_rs-f71906ca38cab4bf) [INFO] [stdout] [INFO] [stdout] running 64 tests [INFO] [stdout] test config::button::tests::force_existences_of_name ... ok [INFO] [stdout] test config::button::tests::full_button_optional_name ... ok [INFO] [stdout] test config::button_face::tests::fails_with_missing_text ... ok [INFO] [stdout] test config::button::tests::full_button_with_name ... ok [INFO] [stdout] test config::button::tests::name_is_optional ... ok [INFO] [stdout] test config::button_face::tests::test_with_all_values ... ok [INFO] [stdout] test config::button_face::tests::test_without_anything ... ok [INFO] [stdout] test config::color::tests::hex_with_alpha_to_rgba ... ok [INFO] [stdout] test config::color::tests::hex_to_rgba ... ok [INFO] [stdout] test config::color::tests::invalid_hex_string ... ok [INFO] [stdout] test config::button_position::tests::positive_positions ... ok [INFO] [stdout] test config::color::tests::non_hex_to_rgba ... ok [INFO] [stdout] test config::button_position::tests::missing_position ... ok [INFO] [stdout] test config::color::tests::invalid_length_hex_string ... ok [INFO] [stdout] test config::button::tests::just_button_name ... ok [INFO] [stdout] test config::color::tests::test_color_from_hex_string ... ok [INFO] [stdout] test config::color::tests::test_color_from_rgb ... ok [INFO] [stdout] test config::defaults::tests::test_color_all_missing ... ok [INFO] [stdout] test config::event_handler::tests::test_with_only_code ... ok [INFO] [stdout] test config::defaults::tests::test_color_all_available ... ok [INFO] [stdout] test config::event_handler::tests::test_with_all_should_not_work ... ok [INFO] [stdout] test config::event_handler::tests::test_with_only_file ... ok [INFO] [stdout] test config::label::tests::test_with_just_text ... ok [INFO] [stdout] test config::button_position::tests::negative_positions ... ok [INFO] [stdout] test config::page::tests::page_button_config ... ok [INFO] [stdout] test config::label::tests::test_with_color ... ok [INFO] [stdout] test config::label::tests::test_without_color ... ok [INFO] [stdout] test config::page::tests::page_button_missing_button ... ok [INFO] [stdout] test config::page::tests::page_config ... ok [INFO] [stdout] test config::tests::load_default_config ... ok [INFO] [stdout] test state::button::tests::get_correct_setup_on_named_button ... ok [INFO] [stdout] test state::button::tests::after_getting_button_face_and_set_rendered_no_rendering_needed ... ok [INFO] [stdout] test state::button::tests::name_in_config_results_in_named_button ... ok [INFO] [stdout] test state::button::tests::per_default_the_button_needs_rendering ... ok [INFO] [stdout] test state::button::tests::when_changing_button_is_released_rendering_is_needed_again ... ok [INFO] [stdout] test state::button::tests::when_changing_button_is_pressed_rendering_is_needed_again ... ok [INFO] [stdout] test state::button::tests::just_name_in_config_results_in_just_name ... ok [INFO] [stdout] test state::button::tests::no_name_in_config_results_in_full_setup ... ok [INFO] [stdout] test state::button::tests::when_changing_the_setup_rendering_is_needed_again ... ok [INFO] [stdout] test state::button_face::tests::correct_face_dimensions ... ok [INFO] [stdout] test state::button_face::tests::filled_with_background_color ... ok [INFO] [stdout] test state::button_position::tests::bottom_left_is_last_index ... ok [INFO] [stdout] test state::button_position::tests::bottom_right_is_last_index_minus_cols ... ok [INFO] [stdout] test state::button_position::tests::position_from_border_from_positive_index ... ok [INFO] [stdout] test state::button_position::tests::position_from_border_from_negative_index ... ok [INFO] [stdout] test state::button_position::tests::position_from_border_from_zero_index ... ok [INFO] [stdout] test state::button_position::tests::top_left_is_index_cols ... ok [INFO] [stdout] test state::button_position::tests::top_right_is_index_zero ... ok [INFO] [stdout] test state::page::positioned_button_setup::tests::test_from_config_with_named_button ... ok [INFO] [stdout] test state::page::tests::buttons_with_names_produce_named_buttons ... ok [INFO] [stdout] test state::page::tests::no_buttons_with_names_no_named_buttons ... ok [INFO] [stdout] test state::app_state::tests::not_existing_page_loading_results_in_error ... ok [INFO] [stdout] test state::app_state::tests::named_buttons_of_page_appear_in_named_buttons ... ok [INFO] [stdout] test state::app_state::tests::pages_are_loaded_from_config ... ok [INFO] [stdout] test state::app_state::tests::page_loading_results_in_face_for_new_button_returned_on_button_press ... ok [INFO] [stdout] test state::app_state::tests::named_buttons_are_loaded_from_config ... ok [INFO] [stdout] test state::app_state::tests::button_press_and_release_results_in_no_need_for_rendering ... ok [INFO] [stdout] test state::app_state::tests::after_button_release_face_is_returned_for_rendering ... ok [INFO] [stdout] test state::app_state::tests::after_button_press_face_is_returned_for_rendering ... ok [INFO] [stdout] test state::app_state::tests::correct_button_press_and_release_events_are_returned ... ok [INFO] [stdout] test state::app_state::tests::after_loading_page_all_buttons_need_rendering ... ok [INFO] [stdout] test state::button_face::tests::test_sub_label_colors_appear ... ok [INFO] [stdout] test state::button_face::tests::filled_with_background_image ... ok [INFO] [stdout] test state::button_face::tests::test_super_label_colors_appear ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4747d1f6ef4ca91efb0251205c3e798945c60d6092356c1aaa321f4825a7406b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4747d1f6ef4ca91efb0251205c3e798945c60d6092356c1aaa321f4825a7406b", kill_on_drop: false }` [INFO] [stdout] 4747d1f6ef4ca91efb0251205c3e798945c60d6092356c1aaa321f4825a7406b