[INFO] fetching crate rppal_mfrc522 0.2.0...
[INFO] testing rppal_mfrc522-0.2.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate rppal_mfrc522 0.2.0 into /workspace/builds/worker-0-tc2/source
[INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config.toml
[INFO] started tweaking crates.io crate rppal_mfrc522 0.2.0
[INFO] finished tweaking crates.io crate rppal_mfrc522 0.2.0
[INFO] tweaked toml for crates.io crate rppal_mfrc522 0.2.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rppal_mfrc522 0.2.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rppal_mfrc522 0.2.0 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9e9530e9ef4938bc1e78a4ec0845dc658ade3eaef836f6481977e46a68edbc5e
[INFO] running `Command { std: "docker" "start" "-a" "9e9530e9ef4938bc1e78a4ec0845dc658ade3eaef836f6481977e46a68edbc5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9e9530e9ef4938bc1e78a4ec0845dc658ade3eaef836f6481977e46a68edbc5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e9530e9ef4938bc1e78a4ec0845dc658ade3eaef836f6481977e46a68edbc5e", kill_on_drop: false }`
[INFO] [stdout] 9e9530e9ef4938bc1e78a4ec0845dc658ade3eaef836f6481977e46a68edbc5e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f546db294e926a268e85058b4d9548b9d1dcb0b84019ce495a0850dd467b9039
[INFO] running `Command { std: "docker" "start" "-a" "f546db294e926a268e85058b4d9548b9d1dcb0b84019ce495a0850dd467b9039", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling utf8parse v0.2.1
[INFO] [stderr]    Compiling anstyle v1.0.4
[INFO] [stderr]    Compiling anstyle-query v1.0.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.0
[INFO] [stderr]    Compiling colorchoice v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling clap_lex v0.7.0
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling numtoa v0.2.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.2
[INFO] [stderr]    Compiling anstream v0.6.14
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling clap_builder v4.5.2
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling rppal v0.22.1
[INFO] [stderr]    Compiling termion v4.0.5
[INFO] [stderr]    Compiling ctrlc v3.4.7
[INFO] [stderr]    Compiling clap_derive v4.5.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling clap v4.5.4
[INFO] [stderr]    Compiling simple_cancelation_token v0.0.1
[INFO] [stderr]    Compiling rppal_mfrc522 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/mfrc522.rs:227:50
[INFO] [stdout]     |
[INFO] [stdout] 227 |         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout]     |                                                  ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 227 -         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout] 227 +         self.rmw(Register::TxControlReg, |value| value | 0x03)?; // Turn on the antenna
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mfrc522.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522 {
[INFO] [stdout]     |                     ^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.54s
[INFO] running `Command { std: "docker" "inspect" "f546db294e926a268e85058b4d9548b9d1dcb0b84019ce495a0850dd467b9039", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f546db294e926a268e85058b4d9548b9d1dcb0b84019ce495a0850dd467b9039", kill_on_drop: false }`
[INFO] [stdout] f546db294e926a268e85058b4d9548b9d1dcb0b84019ce495a0850dd467b9039
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 404d2997d05613b1550cd4f7c90ba9c2c856e3acd80a48f25efc708bea81a14a
[INFO] running `Command { std: "docker" "start" "-a" "404d2997d05613b1550cd4f7c90ba9c2c856e3acd80a48f25efc708bea81a14a", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/mfrc522.rs:227:50
[INFO] [stdout]     |
[INFO] [stdout] 227 |         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout]     |                                                  ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 227 -         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout] 227 +         self.rmw(Register::TxControlReg, |value| value | 0x03)?; // Turn on the antenna
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rppal_mfrc522 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mfrc522.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522 {
[INFO] [stdout]     |                     ^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/mfrc522.rs:227:50
[INFO] [stdout]     |
[INFO] [stdout] 227 |         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout]     |                                                  ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 227 -         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stdout] 227 +         self.rmw(Register::TxControlReg, |value| value | 0x03)?; // Turn on the antenna
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mfrc522.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522 {
[INFO] [stdout]     |                     ^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.03s
[INFO] running `Command { std: "docker" "inspect" "404d2997d05613b1550cd4f7c90ba9c2c856e3acd80a48f25efc708bea81a14a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "404d2997d05613b1550cd4f7c90ba9c2c856e3acd80a48f25efc708bea81a14a", kill_on_drop: false }`
[INFO] [stdout] 404d2997d05613b1550cd4f7c90ba9c2c856e3acd80a48f25efc708bea81a14a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 823660c99825865e05e8f4e8c52f7e2d1721a6ec615b3bc2e29da4bd3f9fb829
[INFO] running `Command { std: "docker" "start" "-a" "823660c99825865e05e8f4e8c52f7e2d1721a6ec615b3bc2e29da4bd3f9fb829", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> src/mfrc522.rs:227:50
[INFO] [stderr]     |
[INFO] [stderr] 227 |         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stderr]     |                                                  ^            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 227 -         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stderr] 227 +         self.rmw(Register::TxControlReg, |value| value | 0x03)?; // Turn on the antenna
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/mfrc522.rs:104:21
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522 {
[INFO] [stderr]     |                     ^^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn new(spi: &mut Spi) -> Mfrc522<'_> {
[INFO] [stderr]     |                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rppal_mfrc522` (lib) generated 2 warnings (run `cargo fix --lib -p rppal_mfrc522` to apply 2 suggestions)
[INFO] [stderr] warning: `rppal_mfrc522` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rppal_mfrc522-f41752b09fe48688)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::basic_test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/rppal_mfrc522.rs (/opt/rustwide/target/debug/deps/mfrc522-8c3d82f54e89ca3f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rppal_mfrc522
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> src/mfrc522.rs:227:50
[INFO] [stderr]     |
[INFO] [stderr] 227 |         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stderr]     |                                                  ^            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 227 -         self.rmw(Register::TxControlReg, |value| (value | 0x03))?; // Turn on the antenna
[INFO] [stderr] 227 +         self.rmw(Register::TxControlReg, |value| value | 0x03)?; // Turn on the antenna
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 20) ... FAILED
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 20) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Gpio`
[INFO] [stdout]  --> src/lib.rs:26:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | let mut reset_pin = Gpio::new()?.get(RESET_PIN_BCM)?.into_output();
[INFO] [stdout]   |                     ^^^^ use of undeclared type `Gpio`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rppal::gpio::Gpio;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `thread`
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout]    | ^^^^^^ use of unresolved module or unlinked crate `thread`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `thread`, use `cargo add thread` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  2 + use std::thread;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `time`
[INFO] [stdout]   --> src/lib.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout]    |               ^^^^ use of unresolved module or unlinked crate `time`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `time`, use `cargo add time` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  2 + use std::time::Duration;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Duration`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 15 - thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout] 15 + thread::sleep(Duration::from_millis(50));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `thread`
[INFO] [stdout]   --> src/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout]    | ^^^^^^ use of unresolved module or unlinked crate `thread`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `thread`, use `cargo add thread` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  2 + use std::thread;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `time`
[INFO] [stdout]   --> src/lib.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout]    |               ^^^^ use of unresolved module or unlinked crate `time`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `time`, use `cargo add time` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  2 + use std::time::Duration;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Duration`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 17 - thread::sleep(time::Duration::from_millis(50));
[INFO] [stdout] 17 + thread::sleep(Duration::from_millis(50));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Duration`
[INFO] [stdout]   --> src/lib.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 26 | let uid = mfrc522.uid(Duration::from_millis(250).unwrap());
[INFO] [stdout]    |                       ^^^^^^^^ use of undeclared type `Duration`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  2 + use std::time::Duration;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: missing type for `const` item
[INFO] [stdout]  --> src/lib.rs:25:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | const RESET_PIN_BCM = 22;
[INFO] [stdout]   |                    ^ help: provide a type for the constant: `: i32`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:27:76
[INFO] [stdout]    |
[INFO] [stdout]  4 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_20_0() {
[INFO] [stdout]    |                                      ---------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 10 | let mut spi = Spi::new(Bus::Spi0, SlaveSelect::Ss0, 1_000_000, Mode::Mode0)?;
[INFO] [stdout]    |                                                                            ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout]  4 ~ fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_20_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]  5 | use rppal::spi::{Spi, SlaveSelect, Bus, Mode};
[INFO] [stdout] ...
[INFO] [stdout] 28 | println!("{:#010x}", uid.to_u32());
[INFO] [stdout] 29 +     Ok(())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_u32` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]   --> src/lib.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 28 | println!("{:#010x}", uid.to_u32());
[INFO] [stdout]    |                          ^^^^^^ method not found in `Result<rppal_mfrc522::mfrc522::Uid, rppal_mfrc522::mfrc522::Mfrc522Error>`
[INFO] [stdout]    |
[INFO] [stdout] note: the method `to_u32` exists on the type `rppal_mfrc522::mfrc522::Uid`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/mfrc522.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn to_u32(&self) -> u32 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: consider using `Result::expect` to unwrap the `rppal_mfrc522::mfrc522::Uid` value, panicking if the value is a `Result::Err`
[INFO] [stdout]    |
[INFO] [stdout] 28 | println!("{:#010x}", uid.expect("REASON").to_u32());
[INFO] [stdout]    |                         +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 20)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "823660c99825865e05e8f4e8c52f7e2d1721a6ec615b3bc2e29da4bd3f9fb829", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "823660c99825865e05e8f4e8c52f7e2d1721a6ec615b3bc2e29da4bd3f9fb829", kill_on_drop: false }`
[INFO] [stdout] 823660c99825865e05e8f4e8c52f7e2d1721a6ec615b3bc2e29da4bd3f9fb829
