[INFO] updating cached repository https://github.com/OneMoreByte/pd-spectra-driver [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] cfb6fa01998533af854a15a5da93486e58398d5a [INFO] checking OneMoreByte/pd-spectra-driver against try#e4dba30b9b475d8750370c4dfb49b6541990904d for pr-71393 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOneMoreByte%2Fpd-spectra-driver" "/workspace/builds/worker-11/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/OneMoreByte/pd-spectra-driver on toolchain e4dba30b9b475d8750370c4dfb49b6541990904d [INFO] running `"/workspace/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "read-manifest" "--manifest-path" "Cargo.toml"` [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-11/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 `"/workspace/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 87b817545143431b33039bc1ec7b749c8b73b9062f5825da6deb20582cdabbfa [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "87b817545143431b33039bc1ec7b749c8b73b9062f5825da6deb20582cdabbfa"` [INFO] [stderr] Compiling libc v0.2.67 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking spidev v0.4.0 [INFO] [stderr] Checking sysfs_gpio v0.5.4 [INFO] [stderr] Checking eink-info-display v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:117:19 [INFO] [stderr] | [INFO] [stderr] 117 | five_ms = time::Duration::from_millis(5); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:118:18 [INFO] [stderr] | [INFO] [stderr] 118 | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | thread::sleep(ten_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:165:23 [INFO] [stderr] | [INFO] [stderr] 165 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:199:13 [INFO] [stderr] | [INFO] [stderr] 199 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:199:27 [INFO] [stderr] | [INFO] [stderr] 199 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0423]: expected value, found builtin type `u8` [INFO] [stderr] --> src/main.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^ not a value [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | for i in 0..(max_x * max_y) { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | for i in 0..(max_x * max_y) { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0424]: expected value, found module `self` [INFO] [stderr] --> src/main.rs:63:24 [INFO] [stderr] | [INFO] [stderr] 60 | / fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] 61 | | let mut array = [u8; max_x * max_y]; [INFO] [stderr] 62 | | for i in 0..(max_x * max_y) { [INFO] [stderr] 63 | | array[i] = self.byte_array[i]; [INFO] [stderr] | | ^^^^ `self` value is a keyword only available in methods with a `self` parameter [INFO] [stderr] ... | [INFO] [stderr] 66 | | array [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____- this function doesn't have a `self` parameter [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `GenericImage` in this scope [INFO] [stderr] --> src/main.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | image: GenericImage, [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `GenericImage` in this scope [INFO] [stderr] --> src/main.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 83 | fn new(image: GenericImage, color_layer: Option) -> EinkImage { [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | five_ms = time::Duration::from_millis(5); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stderr] --> src/main.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:134:23 [INFO] [stderr] | [INFO] [stderr] 134 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stderr] --> src/main.rs:136:23 [INFO] [stderr] | [INFO] [stderr] 136 | thread::sleep(ten_ms); [INFO] [stderr] | ^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:138:23 [INFO] [stderr] | [INFO] [stderr] 138 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:140:23 [INFO] [stderr] | [INFO] [stderr] 140 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `create_spi` in this scope [INFO] [stderr] --> src/main.rs:205:18 [INFO] [stderr] | [INFO] [stderr] 205 | spi: create_spi(spi_path), [INFO] [stderr] | ^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `spi_path` in this scope [INFO] [stderr] --> src/main.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | spi: create_spi(spi_path), [INFO] [stderr] | ^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::sleep` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::thread::sleep; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SpidevTransfer` [INFO] [stderr] --> src/main.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | use spidev::{Spidev, SpidevOptions, SpidevTransfer, SpiModeFlags}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | fn new() -> Layer { [INFO] [stderr] | --- ^^^^^ expected struct `Layer`, found `()` [INFO] [stderr] | | [INFO] [stderr] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:83:63 [INFO] [stderr] | [INFO] [stderr] 83 | fn new(image: GenericImage, color_layer: Option) -> EinkImage { [INFO] [stderr] | --- ^^^^^^^^^ expected struct `EinkImage`, found `()` [INFO] [stderr] | | [INFO] [stderr] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:117:19 [INFO] [stderr] | [INFO] [stderr] 117 | five_ms = time::Duration::from_millis(5); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:118:18 [INFO] [stderr] | [INFO] [stderr] 118 | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | thread::sleep(ten_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:165:23 [INFO] [stderr] | [INFO] [stderr] 165 | thread::sleep(time::Duration::from_millis(150)); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] 120 | | self.power.set_direction(Direction::High)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] 120 | | self.power.set_direction(Direction::High)?; [INFO] [stderr] 121 | | self.reset.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 122 | | self.cs.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `thread` [INFO] [stderr] --> src/main.rs:199:13 [INFO] [stderr] | [INFO] [stderr] 199 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stderr] | ^^^^^^ use of undeclared type or module `thread` [INFO] [stderr] [INFO] [stderr] error[E0433]: failed to resolve: use of undeclared type or module `time` [INFO] [stderr] --> src/main.rs:199:27 [INFO] [stderr] | [INFO] [stderr] 199 | thread::sleep(time::Duration::from_millis(5)); [INFO] [stderr] | ^^^^ use of undeclared type or module `time` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0423]: expected value, found builtin type `u8` [INFO] [stderr] --> src/main.rs:61:26 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^ not a value [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | let mut array = [u8; max_x * max_y]; [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_x` in this scope [INFO] [stderr] --> src/main.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | for i in 0..(max_x * max_y) { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `max_y` in this scope [INFO] [stderr] --> src/main.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | for i in 0..(max_x * max_y) { [INFO] [stderr] | ^^^^^ a field by this name exists in `Self` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 123 | | self.dc.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0424]: expected value, found module `self` [INFO] [stderr] --> src/main.rs:63:24 [INFO] [stderr] | [INFO] [stderr] 60 | / fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] 61 | | let mut array = [u8; max_x * max_y]; [INFO] [stderr] 62 | | for i in 0..(max_x * max_y) { [INFO] [stderr] 63 | | array[i] = self.byte_array[i]; [INFO] [stderr] | | ^^^^ `self` value is a keyword only available in methods with a `self` parameter [INFO] [stderr] ... | [INFO] [stderr] 66 | | array [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____- this function doesn't have a `self` parameter [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `GenericImage` in this scope [INFO] [stderr] --> src/main.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | image: GenericImage, [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `GenericImage` in this scope [INFO] [stderr] --> src/main.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 83 | fn new(image: GenericImage, color_layer: Option) -> EinkImage { [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | five_ms = time::Duration::from_millis(5); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stderr] --> src/main.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:134:23 [INFO] [stderr] | [INFO] [stderr] 134 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `ten_ms` in this scope [INFO] [stderr] --> src/main.rs:136:23 [INFO] [stderr] | [INFO] [stderr] 136 | thread::sleep(ten_ms); [INFO] [stderr] | ^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:138:23 [INFO] [stderr] | [INFO] [stderr] 138 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `five_ms` in this scope [INFO] [stderr] --> src/main.rs:140:23 [INFO] [stderr] | [INFO] [stderr] 140 | thread::sleep(five_ms); [INFO] [stderr] | ^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `create_spi` in this scope [INFO] [stderr] --> src/main.rs:205:18 [INFO] [stderr] | [INFO] [stderr] 205 | spi: create_spi(spi_path), [INFO] [stderr] | ^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find value `spi_path` in this scope [INFO] [stderr] --> src/main.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | spi: create_spi(spi_path), [INFO] [stderr] | ^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::sleep` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::thread::sleep; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SpidevTransfer` [INFO] [stderr] --> src/main.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | use spidev::{Spidev, SpidevOptions, SpidevTransfer, SpiModeFlags}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 124 | | self.busy.set_direction(Direction::In)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 139 | | self.spi.write(&[0x00, 0x0E])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 142 | | self.spi.write(&[0xe5, 0x14])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | fn new() -> Layer { [INFO] [stderr] | --- ^^^^^ expected struct `Layer`, found `()` [INFO] [stderr] | | [INFO] [stderr] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/main.rs:83:63 [INFO] [stderr] | [INFO] [stderr] 83 | fn new(image: GenericImage, color_layer: Option) -> EinkImage { [INFO] [stderr] | --- ^^^^^^^^^ expected struct `EinkImage`, found `()` [INFO] [stderr] | | [INFO] [stderr] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 146 | | self.spi.write(&[0xe0, 0x02])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 148 | | self.spi.write(&[0xcf, 0x02])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 157 | / fn power_off(&self) { [INFO] [stderr] 158 | | self.spi.write(&[0x02, 0x02]); [INFO] [stderr] 159 | | self.wait_busy(1); [INFO] [stderr] 160 | | self.reset.set_direction(Direction::In)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 170 | | self.busy.unexport(); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 157 | / fn power_off(&self) { [INFO] [stderr] 158 | | self.spi.write(&[0x02, 0x02]); [INFO] [stderr] 159 | | self.wait_busy(1); [INFO] [stderr] 160 | | self.reset.set_direction(Direction::In)?; [INFO] [stderr] ... | [INFO] [stderr] 164 | | self.busy.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 170 | | self.busy.unexport(); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `copy` found for type `u8` in the current scope [INFO] [stderr] --> src/main.rs:177:35 [INFO] [stderr] | [INFO] [stderr] 177 | self.spi.write(&[l.id.copy()]); [INFO] [stderr] | ^^^^ method not found in `u8` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `get_byte_array` found for reference `&Layer` in the current scope [INFO] [stderr] --> src/main.rs:181:31 [INFO] [stderr] | [INFO] [stderr] 181 | self.spi.write(&l.get_byte_array()); [INFO] [stderr] | --^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | this is an associated function, not a method [INFO] [stderr] | help: use associated function syntax instead: `Layer::get_byte_array` [INFO] [stderr] | [INFO] [stderr] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stderr] note: the candidate is defined in an impl for the type `Layer` [INFO] [stderr] --> src/main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:195:23 [INFO] [stderr] | [INFO] [stderr] 193 | / fn wait_busy(&self, state: u8) { [INFO] [stderr] 194 | | loop { [INFO] [stderr] 195 | | let val = self.busy.get_value()?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] 196 | | if val == state { [INFO] [stderr] ... | [INFO] [stderr] 200 | | } [INFO] [stderr] 201 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0063]: missing fields `max_x`, `max_y`, `power` in initializer of `EinkDisplay` [INFO] [stderr] --> src/main.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | EinkDisplay { [INFO] [stderr] | ^^^^^^^^^^^ missing `max_x`, `max_y`, `power` [INFO] [stderr] [INFO] [stderr] error: aborting due to 48 previous errors; 3 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0063, E0277, E0308, E0412, E0423, E0424, E0425, E0433, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0063`. [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] 120 | | self.power.set_direction(Direction::High)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] 120 | | self.power.set_direction(Direction::High)?; [INFO] [stderr] 121 | | self.reset.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error: could not compile `eink-info-display`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 122 | | self.cs.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 123 | | self.dc.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 124 | | self.busy.set_direction(Direction::In)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 139 | | self.spi.write(&[0x00, 0x0E])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 142 | | self.spi.write(&[0xe5, 0x14])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 146 | | self.spi.write(&[0xe0, 0x02])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 148 | | self.spi.write(&[0xcf, 0x02])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 116 | / fn power_on(&self) { [INFO] [stderr] 117 | | five_ms = time::Duration::from_millis(5); [INFO] [stderr] 118 | | ten_ms = time::Duration::from_millis(10); [INFO] [stderr] 119 | | // Set pin direction [INFO] [stderr] ... | [INFO] [stderr] 151 | | self.spi.write(&[0x00, 0x0F, 0x89])?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 157 | / fn power_off(&self) { [INFO] [stderr] 158 | | self.spi.write(&[0x02, 0x02]); [INFO] [stderr] 159 | | self.wait_busy(1); [INFO] [stderr] 160 | | self.reset.set_direction(Direction::In)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 170 | | self.busy.unexport(); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 157 | / fn power_off(&self) { [INFO] [stderr] 158 | | self.spi.write(&[0x02, 0x02]); [INFO] [stderr] 159 | | self.wait_busy(1); [INFO] [stderr] 160 | | self.reset.set_direction(Direction::In)?; [INFO] [stderr] ... | [INFO] [stderr] 164 | | self.busy.set_direction(Direction::Low)?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 170 | | self.busy.unexport(); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `copy` found for type `u8` in the current scope [INFO] [stderr] --> src/main.rs:177:35 [INFO] [stderr] | [INFO] [stderr] 177 | self.spi.write(&[l.id.copy()]); [INFO] [stderr] | ^^^^ method not found in `u8` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `get_byte_array` found for reference `&Layer` in the current scope [INFO] [stderr] --> src/main.rs:181:31 [INFO] [stderr] | [INFO] [stderr] 181 | self.spi.write(&l.get_byte_array()); [INFO] [stderr] | --^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | this is an associated function, not a method [INFO] [stderr] | help: use associated function syntax instead: `Layer::get_byte_array` [INFO] [stderr] | [INFO] [stderr] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stderr] note: the candidate is defined in an impl for the type `Layer` [INFO] [stderr] --> src/main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | fn get_byte_array() -> [u8; max_x * max_y] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/main.rs:195:23 [INFO] [stderr] | [INFO] [stderr] 193 | / fn wait_busy(&self, state: u8) { [INFO] [stderr] 194 | | loop { [INFO] [stderr] 195 | | let val = self.busy.get_value()?; [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] 196 | | if val == state { [INFO] [stderr] ... | [INFO] [stderr] 200 | | } [INFO] [stderr] 201 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0063]: missing fields `max_x`, `max_y`, `power` in initializer of `EinkDisplay` [INFO] [stderr] --> src/main.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | EinkDisplay { [INFO] [stderr] | ^^^^^^^^^^^ missing `max_x`, `max_y`, `power` [INFO] [stderr] [INFO] [stderr] error: aborting due to 48 previous errors; 3 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0063, E0277, E0308, E0412, E0423, E0424, E0425, E0433, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0063`. [INFO] [stderr] error: could not compile `eink-info-display`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "87b817545143431b33039bc1ec7b749c8b73b9062f5825da6deb20582cdabbfa"` [INFO] running `"docker" "rm" "-f" "87b817545143431b33039bc1ec7b749c8b73b9062f5825da6deb20582cdabbfa"` [INFO] [stdout] 87b817545143431b33039bc1ec7b749c8b73b9062f5825da6deb20582cdabbfa