[INFO] cloning repository https://github.com/Darkskald/launchpad_mini_playground
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Darkskald/launchpad_mini_playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarkskald%2Flaunchpad_mini_playground", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarkskald%2Flaunchpad_mini_playground'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90bf6c8a30635bf55d8fe1b8471cfbee03c1827e
[INFO] checking Darkskald/launchpad_mini_playground against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarkskald%2Flaunchpad_mini_playground" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Darkskald/launchpad_mini_playground
[INFO] finished tweaking git repo https://github.com/Darkskald/launchpad_mini_playground
[INFO] tweaked toml for git repo https://github.com/Darkskald/launchpad_mini_playground written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Darkskald/launchpad_mini_playground 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 git repo https://github.com/Darkskald/launchpad_mini_playground 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: binary `launchpad_mini` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-0-tc1/source/target/.../launchpad_mini
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `launchpad-mini`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:7:8
[INFO] [stderr]    |
[INFO] [stderr]  7 - name = "launchpad_mini"
[INFO] [stderr]  7 + name = "launchpad-mini"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `launchpad-mini`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:8:19
[INFO] [stderr]    |
[INFO] [stderr]  8 ~ version = "0.1.0"
[INFO] [stderr]  9 + [[bin]]
[INFO] [stderr] 10 + name = "launchpad-mini"
[INFO] [stderr] 11 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `launchpad_mini` (manifest) generated 1 warning
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.74
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.74
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.74
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.74
[INFO] [stderr]   Downloaded proc-macro2 v1.0.27
[INFO] [stderr]   Downloaded js-sys v0.3.51
[INFO] [stderr]   Downloaded cc v1.0.68
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.74
[INFO] [stderr]   Downloaded syn v1.0.73
[INFO] [stderr]   Downloaded web-sys v0.3.51
[INFO] [stderr]   Downloaded libc v0.2.97
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807
[INFO] running `Command { std: "docker" "start" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807", 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" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807", 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" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `launchpad_mini` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../launchpad_mini
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `launchpad-mini`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:7:8
[INFO] [stderr]    |
[INFO] [stderr]  7 - name = "launchpad_mini"
[INFO] [stderr]  7 + name = "launchpad-mini"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `launchpad-mini`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:8:19
[INFO] [stderr]    |
[INFO] [stderr]  8 ~ version = "0.1.0"
[INFO] [stderr]  9 + [[bin]]
[INFO] [stderr] 10 + name = "launchpad-mini"
[INFO] [stderr] 11 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `launchpad_mini` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.97
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]    Compiling nix v0.15.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking memalloc v0.1.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking alsa v0.4.3
[INFO] [stderr]     Checking midir v0.7.0
[INFO] [stderr]     Checking launchpad_mini v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::arch::x86_64::_mm_extract_si64`
[INFO] [stdout]  --> src/launchpad.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::arch::x86_64::_mm_extract_si64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `stdin`, and `stdout`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdin, stdout, Write};
[INFO] [stdout]   |               ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ignore`, `MidiOutputConnection`, `MidiOutputPort`, and `MidiOutput`
[INFO] [stdout]  --> src/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use midir::{MidiOutput, MidiOutputPort, Ignore, MidiOutputConnection};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/launchpad.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut lp = LaunchPad {
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pad`
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let pad = LaunchPad::new(midi_out);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pad`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color` is never used
[INFO] [stdout]   --> src/main.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn get_color(color: (u8, u8)) -> u8 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTE_ON_MSG` is never used
[INFO] [stdout]  --> src/launchpad.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const NOTE_ON_MSG: u8 = 0x90;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTE_OFF_MSG` is never used
[INFO] [stdout]  --> src/launchpad.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const NOTE_OFF_MSG: u8 = 0x80;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOUBLE_BUFFERING` is never used
[INFO] [stdout]  --> src/launchpad.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const DOUBLE_BUFFERING: u8 = 0xB0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LedColor` is never constructed
[INFO] [stdout]  --> src/launchpad.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct LedColor {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_hex_data` are never used
[INFO] [stdout]   --> src/launchpad.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl LedColor {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 14 |     fn new(red: u8, green: u8) -> LedColor {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn get_hex_data(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conn` and `flash_state` are never read
[INFO] [stdout]   --> src/launchpad.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LaunchPad {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 27 |     conn: MidiOutputConnection,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 28 |     flash_state: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `keys_as_vec`, `buffer_msg`, and `led_on_msg` are never used
[INFO] [stdout]   --> src/launchpad.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl LaunchPad {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn keys_as_vec() -> Vec<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn buffer_msg(&mut self, key: u8, data: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn led_on_msg(&mut self, key: u8, color: LedColor) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/launchpad.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         self.conn.send(&[DOUBLE_BUFFERING, key, data]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let _ = self.conn.send(&[DOUBLE_BUFFERING, key, data]);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/launchpad.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         self.conn.send(&[NOTE_ON_MSG, key, color.get_hex_data()]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let _ = self.conn.send(&[NOTE_ON_MSG, key, color.get_hex_data()]);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::_mm_extract_si64`
[INFO] [stdout]  --> src/launchpad.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::arch::x86_64::_mm_extract_si64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `stdin`, and `stdout`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdin, stdout, Write};
[INFO] [stdout]   |               ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ignore`, `MidiOutputConnection`, `MidiOutputPort`, and `MidiOutput`
[INFO] [stdout]  --> src/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use midir::{MidiOutput, MidiOutputPort, Ignore, MidiOutputConnection};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/launchpad.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut lp = LaunchPad {
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pad`
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let pad = LaunchPad::new(midi_out);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pad`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color` is never used
[INFO] [stdout]   --> src/main.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn get_color(color: (u8, u8)) -> u8 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTE_ON_MSG` is never used
[INFO] [stdout]  --> src/launchpad.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const NOTE_ON_MSG: u8 = 0x90;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOTE_OFF_MSG` is never used
[INFO] [stdout]  --> src/launchpad.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const NOTE_OFF_MSG: u8 = 0x80;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOUBLE_BUFFERING` is never used
[INFO] [stdout]  --> src/launchpad.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const DOUBLE_BUFFERING: u8 = 0xB0;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LedColor` is never constructed
[INFO] [stdout]  --> src/launchpad.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct LedColor {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_hex_data` are never used
[INFO] [stdout]   --> src/launchpad.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl LedColor {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 14 |     fn new(red: u8, green: u8) -> LedColor {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn get_hex_data(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conn` and `flash_state` are never read
[INFO] [stdout]   --> src/launchpad.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LaunchPad {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 27 |     conn: MidiOutputConnection,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 28 |     flash_state: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `keys_as_vec`, `buffer_msg`, and `led_on_msg` are never used
[INFO] [stdout]   --> src/launchpad.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl LaunchPad {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn keys_as_vec() -> Vec<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn buffer_msg(&mut self, key: u8, data: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn led_on_msg(&mut self, key: u8, color: LedColor) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/launchpad.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         self.conn.send(&[DOUBLE_BUFFERING, key, data]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let _ = self.conn.send(&[DOUBLE_BUFFERING, key, data]);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/launchpad.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         self.conn.send(&[NOTE_ON_MSG, key, color.get_hex_data()]);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let _ = self.conn.send(&[NOTE_ON_MSG, key, color.get_hex_data()]);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.34s
[INFO] running `Command { std: "docker" "inspect" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807", kill_on_drop: false }`
[INFO] [stdout] 3b08966a7b1f5e22d41198c9cb6e0e6b8d3fd6a3ffc4cd1be9a8fd9c68606807
