[INFO] cloning repository https://github.com/OneMoreByte/pd-spectra-driver [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/OneMoreByte/pd-spectra-driver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOneMoreByte%2Fpd-spectra-driver", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOneMoreByte%2Fpd-spectra-driver'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bb713b3ee7c8d10f2d8f8925a8b030ad147f038e [INFO] checking OneMoreByte/pd-spectra-driver/bb713b3ee7c8d10f2d8f8925a8b030ad147f038e against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOneMoreByte%2Fpd-spectra-driver" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/OneMoreByte/pd-spectra-driver on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/OneMoreByte/pd-spectra-driver [INFO] finished tweaking git repo https://github.com/OneMoreByte/pd-spectra-driver [INFO] tweaked toml for git repo https://github.com/OneMoreByte/pd-spectra-driver written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/OneMoreByte/pd-spectra-driver 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 28 packages to latest compatible versions [INFO] [stderr] Adding adler v1.0.2 [INFO] [stderr] Adding adler32 v1.2.0 [INFO] [stderr] Adding autocfg v1.4.0 [INFO] [stderr] Adding bytemuck v1.18.0 [INFO] [stderr] Adding byteorder v1.5.0 [INFO] [stderr] Adding cfg-if v1.0.0 [INFO] [stderr] Adding color_quant v1.1.0 [INFO] [stderr] Adding crc32fast v1.4.2 [INFO] [stderr] Adding crossbeam-deque v0.8.5 [INFO] [stderr] Adding crossbeam-epoch v0.9.18 [INFO] [stderr] Adding crossbeam-utils v0.8.20 [INFO] [stderr] Adding deflate v0.8.6 (available: v1.0.0) [INFO] [stderr] Adding either v1.13.0 [INFO] [stderr] Adding gif v0.11.4 (available: v0.13.1) [INFO] [stderr] Adding image v0.23.14 (available: v0.25.2) [INFO] [stderr] Adding jpeg-decoder v0.1.22 (available: v0.3.1) [INFO] [stderr] Adding miniz_oxide v0.3.7 (available: v0.8.0) [INFO] [stderr] Adding miniz_oxide v0.4.4 (available: v0.8.0) [INFO] [stderr] Adding num-integer v0.1.46 [INFO] [stderr] Adding num-iter v0.1.45 [INFO] [stderr] Adding num-rational v0.3.2 (available: v0.4.2) [INFO] [stderr] Adding num-traits v0.2.19 [INFO] [stderr] Adding png v0.16.8 (available: v0.17.13) [INFO] [stderr] Adding rayon v1.10.0 [INFO] [stderr] Adding rayon-core v1.12.1 [INFO] [stderr] Adding scoped_threadpool v0.1.9 [INFO] [stderr] Adding tiff v0.6.1 (available: v0.9.1) [INFO] [stderr] Adding weezl v0.1.8 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded spidev v0.4.0 [INFO] [stderr] Downloaded sysfs_gpio v0.5.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9ac5bd3bf48a67fb223321569dd76c1bd41997a442e67f32b6b57042f5661da6 [INFO] running `Command { std: "docker" "start" "-a" "9ac5bd3bf48a67fb223321569dd76c1bd41997a442e67f32b6b57042f5661da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9ac5bd3bf48a67fb223321569dd76c1bd41997a442e67f32b6b57042f5661da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ac5bd3bf48a67fb223321569dd76c1bd41997a442e67f32b6b57042f5661da6", kill_on_drop: false }` [INFO] [stdout] 9ac5bd3bf48a67fb223321569dd76c1bd41997a442e67f32b6b57042f5661da6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a6ad1a7ac10dc5d40dced2e6ac4bdc4a340ca76b65eedb6a9d5b9515f34ccac1 [INFO] running `Command { std: "docker" "start" "-a" "a6ad1a7ac10dc5d40dced2e6ac4bdc4a340ca76b65eedb6a9d5b9515f34ccac1", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling libc v0.2.67 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Checking weezl v0.1.8 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking bytemuck v1.18.0 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Checking deflate v0.8.6 [INFO] [stderr] Checking miniz_oxide v0.3.7 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking gif v0.11.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Checking png v0.16.8 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Checking tiff v0.6.1 [INFO] [stderr] Checking sysfs_gpio v0.5.4 [INFO] [stderr] Checking spidev v0.4.0 [INFO] [stderr] Checking image v0.23.14 [INFO] [stderr] Checking eink-info-display v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:244:53 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 245 | let display = EinkDisplay::new(x, y); [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:244:53 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 245 | let display = EinkDisplay::new(x, y); [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | five_ms = time::Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to introduce a new binding [INFO] [stdout] | [INFO] [stdout] 137 | let five_ms = time::Duration::from_millis(5); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | five_ms = time::Duration::from_millis(5); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to introduce a new binding [INFO] [stdout] | [INFO] [stdout] 137 | let five_ms = time::Duration::from_millis(5); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:137:19 [INFO] [stdout] | [INFO] [stdout] 137 | five_ms = time::Duration::from_millis(5); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 137 - five_ms = time::Duration::from_millis(5); [INFO] [stdout] 137 + five_ms = Duration::from_millis(5); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:137:19 [INFO] [stdout] | [INFO] [stdout] 137 | five_ms = time::Duration::from_millis(5); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 137 - five_ms = time::Duration::from_millis(5); [INFO] [stdout] 137 + five_ms = Duration::from_millis(5); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stdout] --> src/main.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to introduce a new binding [INFO] [stdout] | [INFO] [stdout] 138 | let ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stdout] --> src/main.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to introduce a new binding [INFO] [stdout] | [INFO] [stdout] 138 | let ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:138:18 [INFO] [stdout] | [INFO] [stdout] 138 | ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 138 - ten_ms = time::Duration::from_millis(10); [INFO] [stdout] 138 + ten_ms = Duration::from_millis(10); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:138:18 [INFO] [stdout] | [INFO] [stdout] 138 | ten_ms = time::Duration::from_millis(10); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 138 - ten_ms = time::Duration::from_millis(10); [INFO] [stdout] 138 + ten_ms = Duration::from_millis(10); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:152:23 [INFO] [stdout] | [INFO] [stdout] 152 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:152:23 [INFO] [stdout] | [INFO] [stdout] 152 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:154:23 [INFO] [stdout] | [INFO] [stdout] 154 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:154:23 [INFO] [stdout] | [INFO] [stdout] 154 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | thread::sleep(ten_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | thread::sleep(ten_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stdout] --> src/main.rs:156:23 [INFO] [stdout] | [INFO] [stdout] 156 | thread::sleep(ten_ms); [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stdout] --> src/main.rs:156:23 [INFO] [stdout] | [INFO] [stdout] 156 | thread::sleep(ten_ms); [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:158:23 [INFO] [stdout] | [INFO] [stdout] 158 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:160:23 [INFO] [stdout] | [INFO] [stdout] 160 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stdout] --> src/main.rs:160:23 [INFO] [stdout] | [INFO] [stdout] 160 | thread::sleep(five_ms); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 185 - thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] 185 + thread::sleep(Duration::from_millis(150)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 185 - thread::sleep(time::Duration::from_millis(150)); [INFO] [stdout] 185 + thread::sleep(Duration::from_millis(150)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `thread` [INFO] [stdout] --> src/main.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] | ^^^^^^ use of undeclared crate or module `thread` [INFO] [stdout] | [INFO] [stdout] help: consider importing this module [INFO] [stdout] | [INFO] [stdout] 5 + use std::thread; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 219 - thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] 219 + thread::sleep(Duration::from_millis(5)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `spi_path` in this scope [INFO] [stdout] --> src/main.rs:225:29 [INFO] [stdout] | [INFO] [stdout] 225 | spi: create_spi(spi_path), [INFO] [stdout] | ^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `time` [INFO] [stdout] --> src/main.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] | ^^^^ use of undeclared crate or module `time` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 5 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] help: if you import `Duration`, refer to it directly [INFO] [stdout] | [INFO] [stdout] 219 - thread::sleep(time::Duration::from_millis(5)); [INFO] [stdout] 219 + thread::sleep(Duration::from_millis(5)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `spi_path` in this scope [INFO] [stdout] --> src/main.rs:225:29 [INFO] [stdout] | [INFO] [stdout] 225 | spi: create_spi(spi_path), [INFO] [stdout] | ^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SpidevTransfer` [INFO] [stdout] --> src/main.rs:10:37 [INFO] [stdout] | [INFO] [stdout] 10 | use spidev::{Spidev, SpidevOptions, SpidevTransfer, SpiModeFlags}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SpidevTransfer` [INFO] [stdout] --> src/main.rs:10:37 [INFO] [stdout] | [INFO] [stdout] 10 | use spidev::{Spidev, SpidevOptions, SpidevTransfer, SpiModeFlags}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | image: GenericImage, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 57 | image: dyn GenericImage, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | image: GenericImage, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 57 | image: dyn GenericImage, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | image: GenericImage, [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | image: GenericImage, [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: dyn GenericImage) -> EinkImage { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: dyn GenericImage) -> EinkImage { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: dyn GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: dyn GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0191]: the value of the associated types `InnerImage` in `GenericImage`, `Pixel` and `InnerImageView` in `GenericImageView` must be specified [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ help: specify the associated types: `GenericImage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | let (x, y) = image.dimensions() as (usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | let (x, y) = image.dimensions() as (usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: impl GenericImage) -> EinkImage { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: &dyn GenericImage) -> EinkImage { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: impl GenericImage) -> EinkImage { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: &dyn GenericImage) -> EinkImage { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `get_bw_layers` in this scope [INFO] [stdout] --> src/main.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | bw_layers: get_bw_layers(image), [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `(u32, u32)` as `(usize, usize)` [INFO] [stdout] --> src/main.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | let (x, y) = image.dimensions() as (usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | let (max_x, max_y) = image.dimensions(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `get_bw_layers` in this scope [INFO] [stdout] --> src/main.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | bw_layers: get_bw_layers(image), [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `(u32, u32)` as `(usize, usize)` [INFO] [stdout] --> src/main.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | let (x, y) = image.dimensions() as (usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: impl GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: &dyn GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | let (max_x, max_y) = image.dimensions(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: impl GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 77 | fn get_layers(image: &dyn GenericImage) -> [[u8; 15000]; 2] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:89:33 [INFO] [stdout] | [INFO] [stdout] 89 | let pixel = image.get_pixel_mut((x*8)+n, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:89:33 [INFO] [stdout] | [INFO] [stdout] 89 | let pixel = image.get_pixel_mut((x*8)+n, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_luma` found for mutable reference `&mut <(dyn GenericImage + 'static) as GenericImageView>::Pixel` in the current scope [INFO] [stdout] --> src/main.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | if pixel.get_luma() < u8::MAX/2 { [INFO] [stdout] | ^^^^^^^^ method not found in `&mut ::Pixel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_luma` found for mutable reference `&mut <(dyn GenericImage + 'static) as GenericImageView>::Pixel` in the current scope [INFO] [stdout] --> src/main.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | if pixel.get_luma() < u8::MAX/2 { [INFO] [stdout] | ^^^^^^^^ method not found in `&mut ::Pixel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `create_spi` in this scope [INFO] [stdout] --> src/main.rs:225:18 [INFO] [stdout] | [INFO] [stdout] 225 | spi: create_spi(spi_path), [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider using the associated function on `Self` [INFO] [stdout] | [INFO] [stdout] 225 | spi: Self::create_spi(spi_path), [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `create_spi` in this scope [INFO] [stdout] --> src/main.rs:225:18 [INFO] [stdout] | [INFO] [stdout] 225 | spi: create_spi(spi_path), [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider using the associated function on `Self` [INFO] [stdout] | [INFO] [stdout] 225 | spi: Self::create_spi(spi_path), [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `GenericImage` cannot be made into an object [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^^^^^^^^^ `GenericImage` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/image-0.23.14/./src/image.rs:782:8 [INFO] [stdout] | [INFO] [stdout] 782 | fn pixels(&self) -> Pixels { [INFO] [stdout] | ^^^^^^ the trait cannot be made into an object because method `pixels` references the `Self` type in its return type [INFO] [stdout] ... [INFO] [stdout] 858 | fn copy_from(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()> [INFO] [stdout] | ^^^^^^^^^ the trait cannot be made into an object because method `copy_from` has generic type parameters [INFO] [stdout] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `GenericImage` for this new enum and using it instead: [INFO] [stdout] image::flat::ViewMut [INFO] [stdout] image::ImageBuffer [INFO] [stdout] image::DynamicImage [INFO] [stdout] image::SubImage [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | -------------- ^^^^^^^^^ expected `dyn GenericImage`, found `DynamicImage` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected trait object `(dyn GenericImage + 'static)` [INFO] [stdout] found enum `DynamicImage` [INFO] [stdout] = help: `DynamicImage` implements `GenericImage` so you could box the found value and coerce it to the trait object `Box`, you will have to change the expected type as well [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/main.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = note: all function arguments must have a statically known size [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | -------------- ^^^^^^^^^ expected `dyn GenericImage`, found `DynamicImage` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected trait object `(dyn GenericImage + 'static)` [INFO] [stdout] found enum `DynamicImage` [INFO] [stdout] = help: `DynamicImage` implements `GenericImage` so you could box the found value and coerce it to the trait object `Box`, you will have to change the expected type as well [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/main.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | fn new(image: GenericImage) -> EinkImage { [INFO] [stdout] | ^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn GenericImage + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:244:43 [INFO] [stdout] | [INFO] [stdout] 244 | let image: EinkImage = EinkImage::new(raw_image) [INFO] [stdout] | ^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn GenericImage + 'static)` [INFO] [stdout] = note: all function arguments must have a statically known size [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | self.spi.write(&[layer_id[layer]]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | self.spi.write(&data[layer]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | self.spi.write(&[0x04, 0x04]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | self.spi.write(&[0x12, 0x12]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | self.spi.write(&[layer_id[layer]]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | self.spi.write(&data[layer]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | self.spi.write(&[0x04, 0x04]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `self.spi` as mutable, as it is behind a `&` reference [INFO] [stdout] --> src/main.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | self.spi.write(&[0x12, 0x12]); [INFO] [stdout] | ^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be a mutable reference [INFO] [stdout] | [INFO] [stdout] 194 | fn send_image(&mut self, data: [[u8; 15000]; 2]) { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 41 previous errors; 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0191, E0277, E0308, E0425, E0433, E0596, E0599, E0605. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 41 previous errors; 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0191, E0277, E0308, E0425, E0433, E0596, E0599, E0605. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `eink-info-display` (bin "eink-info-display") due to 42 previous errors; 6 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `eink-info-display` (bin "eink-info-display" test) due to 42 previous errors; 6 warnings emitted [INFO] running `Command { std: "docker" "inspect" "a6ad1a7ac10dc5d40dced2e6ac4bdc4a340ca76b65eedb6a9d5b9515f34ccac1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6ad1a7ac10dc5d40dced2e6ac4bdc4a340ca76b65eedb6a9d5b9515f34ccac1", kill_on_drop: false }` [INFO] [stdout] a6ad1a7ac10dc5d40dced2e6ac4bdc4a340ca76b65eedb6a9d5b9515f34ccac1