[INFO] cloning repository https://github.com/longxiangam/lcd-drivers [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/longxiangam/lcd-drivers" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flongxiangam%2Flcd-drivers", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flongxiangam%2Flcd-drivers'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cb42bb928c21ea203d2e3acfdbbef199da6a19a8 [INFO] checking longxiangam/lcd-drivers against master#85c39893a761fe4c050523278da4e7e45ab42b6e for pr-134688-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flongxiangam%2Flcd-drivers" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/longxiangam/lcd-drivers on toolchain 85c39893a761fe4c050523278da4e7e45ab42b6e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+85c39893a761fe4c050523278da4e7e45ab42b6e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/longxiangam/lcd-drivers [INFO] finished tweaking git repo https://github.com/longxiangam/lcd-drivers [INFO] tweaked toml for git repo https://github.com/longxiangam/lcd-drivers written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/longxiangam/lcd-drivers 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" "+85c39893a761fe4c050523278da4e7e45ab42b6e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded nb v1.1.0 [INFO] [stderr] Downloaded embedded-hal v1.0.0 [INFO] [stderr] Downloaded embedded-hal-async v1.0.0 [INFO] [stderr] Downloaded nb v0.1.3 [INFO] [stderr] Downloaded embedded-hal v0.2.7 [INFO] [stderr] Downloaded az v1.2.1 [INFO] [stderr] Downloaded half v2.4.0 [INFO] [stderr] Downloaded embedded-graphics-core v0.4.0 [INFO] [stderr] Downloaded micromath v2.1.0 [INFO] [stderr] Downloaded fixed v1.26.0 [INFO] [stderr] Downloaded embedded-graphics v0.8.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+85c39893a761fe4c050523278da4e7e45ab42b6e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f2de903119ef0ef80a9d2c517e45fe9c1c76d656da22bbb7126963ced851d483 [INFO] running `Command { std: "docker" "start" "-a" "f2de903119ef0ef80a9d2c517e45fe9c1c76d656da22bbb7126963ced851d483", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f2de903119ef0ef80a9d2c517e45fe9c1c76d656da22bbb7126963ced851d483", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2de903119ef0ef80a9d2c517e45fe9c1c76d656da22bbb7126963ced851d483", kill_on_drop: false }` [INFO] [stdout] f2de903119ef0ef80a9d2c517e45fe9c1c76d656da22bbb7126963ced851d483 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+85c39893a761fe4c050523278da4e7e45ab42b6e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 774e13da3e824f2c6606bda4a90e4996ea94f967b32bc719c67442b48a8c5044 [INFO] running `Command { std: "docker" "start" "-a" "774e13da3e824f2c6606bda4a90e4996ea94f967b32bc719c67442b48a8c5044", kill_on_drop: false }` [INFO] [stderr] Compiling az v1.2.1 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling fixed v1.26.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking bytemuck v1.15.0 [INFO] [stderr] Compiling embedded-hal-async v1.0.0 [INFO] [stderr] Checking micromath v2.1.0 [INFO] [stderr] Checking embedded-hal v1.0.0 [INFO] [stderr] Checking half v2.4.0 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Checking embedded-graphics-core v0.4.0 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking embedded-graphics v0.8.1 [INFO] [stderr] Checking lcd-drivers v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Color` [INFO] [stdout] --> src/graphics.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::color::{Color, OctColor, TriColor, TwoBitColor}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisplayRotation`, `Display`, `VarDisplay`, `buffer_len`, `find_position`, and `outside_display` [INFO] [stdout] --> src/graphics.rs:479:17 [INFO] [stdout] | [INFO] [stdout] 479 | use super::{buffer_len, find_position, outside_display, Display, DisplayRotation, VarDisplay}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::color::Black` [INFO] [stdout] --> src/graphics.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | use crate::color::Black; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::color::Color` [INFO] [stdout] --> src/graphics.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | use crate::color::Color; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line`, `PrimitiveStyle`, and `prelude::*` [INFO] [stdout] --> src/graphics.rs:483:9 [INFO] [stdout] | [INFO] [stdout] 483 | prelude::*, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 484 | primitives::{Line, PrimitiveStyle}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/traits_async.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/interface_async.rs:3:42 [INFO] [stdout] | [INFO] [stdout] 3 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::*` [INFO] [stdout] --> src/uc1638/mod.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{color::TwoBitColor, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command::Command` [INFO] [stdout] --> src/uc1638/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use command::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::marker::Sized` [INFO] [stdout] --> src/uc1638/lcd_async.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::marker::Sized; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/uc1638/lcd_async.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::*` [INFO] [stdout] --> src/uc1638/lcd_async.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{color::TwoBitColor, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/uc1638/lcd_async.rs:50:56 [INFO] [stdout] | [INFO] [stdout] 50 | self.cmd_with_data_u8(spi, 0xf1, &[95]).await?;; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/uc1638/lcd_async.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | if(Y>23){YY=0;} //保证页面代码最大为11 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 157 - if(Y>23){YY=0;} //保证页面代码最大为11 [INFO] [stdout] 157 + if Y>23 {YY=0;} //保证页面代码最大为11 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mode`, `Phase`, and `Polarity` [INFO] [stdout] --> src/lib.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | use embedded_hal_v2::spi::{Mode, Phase, Polarity}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Color` [INFO] [stdout] --> src/graphics.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::color::{Color, OctColor, TriColor, TwoBitColor}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/interface_async.rs:3:42 [INFO] [stdout] | [INFO] [stdout] 3 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::*` [INFO] [stdout] --> src/uc1638/mod.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{color::TwoBitColor, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command::Command` [INFO] [stdout] --> src/uc1638/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use command::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::marker::Sized` [INFO] [stdout] --> src/uc1638/lcd_async.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::marker::Sized; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/uc1638/lcd_async.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::*` [INFO] [stdout] --> src/uc1638/lcd_async.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{color::TwoBitColor, prelude::*}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/uc1638/lcd_async.rs:50:56 [INFO] [stdout] | [INFO] [stdout] 50 | self.cmd_with_data_u8(spi, 0xf1, &[95]).await?;; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/uc1638/lcd_async.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | if(Y>23){YY=0;} //保证页面代码最大为11 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 157 - if(Y>23){YY=0;} //保证页面代码最大为11 [INFO] [stdout] 157 + if Y>23 {YY=0;} //保证页面代码最大为11 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mode`, `Phase`, and `Polarity` [INFO] [stdout] --> src/lib.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | use embedded_hal_v2::spi::{Mode, Phase, Polarity}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | spi: &mut SPI, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/uc1638/lcd_async.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | buffer: &[u8], [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/uc1638/lcd_async.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | x: u32, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/uc1638/lcd_async.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | y: u32, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `width` [INFO] [stdout] --> src/uc1638/lcd_async.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | width: u32, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `height` [INFO] [stdout] --> src/uc1638/lcd_async.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | height: u32, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:106:40 [INFO] [stdout] | [INFO] [stdout] 106 | async fn display_frame(&mut self, spi: &mut SPI, _delay: &mut DELAY) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | spi: &mut SPI, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/uc1638/lcd_async.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | buffer: &[u8], [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delay` [INFO] [stdout] --> src/uc1638/lcd_async.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | delay: &mut DELAY [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delay` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:119:38 [INFO] [stdout] | [INFO] [stdout] 119 | async fn clear_frame(&mut self, spi: &mut SPI, _delay: &mut DELAY) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color_value` [INFO] [stdout] --> src/uc1638/lcd_async.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let color_value = self.color.get_byte_value(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_color_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | spi: &mut SPI, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/uc1638/lcd_async.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | buffer: &[u8], [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/uc1638/lcd_async.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | x: u32, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/uc1638/lcd_async.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | y: u32, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `width` [INFO] [stdout] --> src/uc1638/lcd_async.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | width: u32, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `height` [INFO] [stdout] --> src/uc1638/lcd_async.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | height: u32, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:106:40 [INFO] [stdout] | [INFO] [stdout] 106 | async fn display_frame(&mut self, spi: &mut SPI, _delay: &mut DELAY) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | spi: &mut SPI, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/uc1638/lcd_async.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | buffer: &[u8], [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delay` [INFO] [stdout] --> src/uc1638/lcd_async.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | delay: &mut DELAY [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delay` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:119:38 [INFO] [stdout] | [INFO] [stdout] 119 | async fn clear_frame(&mut self, spi: &mut SPI, _delay: &mut DELAY) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `color_value` [INFO] [stdout] --> src/uc1638/lcd_async.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let color_value = self.color.get_byte_value(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_color_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:203:41 [INFO] [stdout] | [INFO] [stdout] 203 | async fn send_resolution(&mut self, spi: &mut SPI) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spi` [INFO] [stdout] --> src/uc1638/lcd_async.rs:203:41 [INFO] [stdout] | [INFO] [stdout] 203 | async fn send_resolution(&mut self, spi: &mut SPI) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_spi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/uc1638/graphics.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::graphics::{Display, DisplayRotation}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/uc1638/graphics.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::graphics::{Display, DisplayRotation}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `digital::Wait` [INFO] [stdout] --> src/traits_async.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use embedded_hal_async::{delay::DelayNs, digital::Wait, spi::SpiDevice}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `data_x_times` is never used [INFO] [stdout] --> src/interface_async.rs:87:25 [INFO] [stdout] | [INFO] [stdout] 22 | / impl DisplayInterface [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | SPI: SpiDevice, [INFO] [stdout] 25 | | DC: OutputPin, [INFO] [stdout] 26 | | RST: OutputPin, [INFO] [stdout] 27 | | DELAY: DelayNs, [INFO] [stdout] | |___________________- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 87 | pub(crate) async fn data_x_times( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `command`, `cmd_with_data`, and `send_resolution` are never used [INFO] [stdout] --> src/uc1638/lcd_async.rs:191:14 [INFO] [stdout] | [INFO] [stdout] 142 | / impl Lcd2in7 [INFO] [stdout] 143 | | where [INFO] [stdout] 144 | | SPI: SpiDevice, [INFO] [stdout] 145 | | DC: OutputPin, [INFO] [stdout] 146 | | RST: OutputPin, [INFO] [stdout] 147 | | DELAY: DelayNs, [INFO] [stdout] | |_______________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 191 | async fn command(&mut self, spi: &mut SPI, command: Command) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | async fn cmd_with_data( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | async fn send_resolution(&mut self, spi: &mut SPI) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | async fn new( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 39 ~ fn new( [INFO] [stdout] 40 | spi: &mut SPI, [INFO] [stdout] ... [INFO] [stdout] 43 | delay: &mut DELAY, [INFO] [stdout] 44 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | async fn update_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 61 ~ fn update_frame( [INFO] [stdout] 62 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 65 | delay: &mut DELAY [INFO] [stdout] 66 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | async fn update_partial_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 73 ~ fn update_partial_frame( [INFO] [stdout] 74 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 80 | height: u32, [INFO] [stdout] 81 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | async fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 86 - async fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] 86 + fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | async fn update_and_display_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 89 ~ fn update_and_display_frame( [INFO] [stdout] 90 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 93 | delay: &mut DELAY [INFO] [stdout] 94 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | async fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 99 - async fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] 99 + fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `X` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:155:46 [INFO] [stdout] | [INFO] [stdout] 155 | pub async fn goto(&mut self,spi:&mut SPI,X: u8, Y: u8) -> Result<(), SPI::Error>{ [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Y` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:155:53 [INFO] [stdout] | [INFO] [stdout] 155 | pub async fn goto(&mut self,spi:&mut SPI,X: u8, Y: u8) -> Result<(), SPI::Error>{ [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `data_x_times` is never used [INFO] [stdout] --> src/interface_async.rs:87:25 [INFO] [stdout] | [INFO] [stdout] 22 | / impl DisplayInterface [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | SPI: SpiDevice, [INFO] [stdout] 25 | | DC: OutputPin, [INFO] [stdout] 26 | | RST: OutputPin, [INFO] [stdout] 27 | | DELAY: DelayNs, [INFO] [stdout] | |___________________- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 87 | pub(crate) async fn data_x_times( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `YY` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:156:17 [INFO] [stdout] | [INFO] [stdout] 156 | let mut YY = Y; [INFO] [stdout] | ^^ help: convert the identifier to snake case (notice the capitalization): `yy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `command`, `cmd_with_data`, and `send_resolution` are never used [INFO] [stdout] --> src/uc1638/lcd_async.rs:191:14 [INFO] [stdout] | [INFO] [stdout] 142 | / impl Lcd2in7 [INFO] [stdout] 143 | | where [INFO] [stdout] 144 | | SPI: SpiDevice, [INFO] [stdout] 145 | | DC: OutputPin, [INFO] [stdout] 146 | | RST: OutputPin, [INFO] [stdout] 147 | | DELAY: DelayNs, [INFO] [stdout] | |_______________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 191 | async fn command(&mut self, spi: &mut SPI, command: Command) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | async fn cmd_with_data( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | async fn send_resolution(&mut self, spi: &mut SPI) -> Result<(), SPI::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | async fn new( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 39 ~ fn new( [INFO] [stdout] 40 | spi: &mut SPI, [INFO] [stdout] ... [INFO] [stdout] 43 | delay: &mut DELAY, [INFO] [stdout] 44 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | async fn update_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 61 ~ fn update_frame( [INFO] [stdout] 62 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 65 | delay: &mut DELAY [INFO] [stdout] 66 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | async fn update_partial_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 73 ~ fn update_partial_frame( [INFO] [stdout] 74 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 80 | height: u32, [INFO] [stdout] 81 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | async fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 86 - async fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] 86 + fn display_frame(&mut self, spi: &mut SPI,delay: &mut DELAY) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | async fn update_and_display_frame( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 89 ~ fn update_and_display_frame( [INFO] [stdout] 90 | &mut self, [INFO] [stdout] ... [INFO] [stdout] 93 | delay: &mut DELAY [INFO] [stdout] 94 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/traits_async.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | async fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 99 - async fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> Result<(), SPI::Error>; [INFO] [stdout] 99 + fn clear_frame(&mut self, spi: &mut SPI, delay: &mut DELAY) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `X` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:155:46 [INFO] [stdout] | [INFO] [stdout] 155 | pub async fn goto(&mut self,spi:&mut SPI,X: u8, Y: u8) -> Result<(), SPI::Error>{ [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Y` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:155:53 [INFO] [stdout] | [INFO] [stdout] 155 | pub async fn goto(&mut self,spi:&mut SPI,X: u8, Y: u8) -> Result<(), SPI::Error>{ [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `YY` should have a snake case name [INFO] [stdout] --> src/uc1638/lcd_async.rs:156:17 [INFO] [stdout] | [INFO] [stdout] 156 | let mut YY = Y; [INFO] [stdout] | ^^ help: convert the identifier to snake case (notice the capitalization): `yy` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.07s [INFO] running `Command { std: "docker" "inspect" "774e13da3e824f2c6606bda4a90e4996ea94f967b32bc719c67442b48a8c5044", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "774e13da3e824f2c6606bda4a90e4996ea94f967b32bc719c67442b48a8c5044", kill_on_drop: false }` [INFO] [stdout] 774e13da3e824f2c6606bda4a90e4996ea94f967b32bc719c67442b48a8c5044