[INFO] fetching crate pca9535 2.0.0...
[INFO] testing pca9535-2.0.0 against nightly-2024-10-28 for randomize-layout
[INFO] extracting crate pca9535 2.0.0 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate pca9535 2.0.0 on toolchain nightly-2024-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] started tweaking crates.io crate pca9535 2.0.0
[INFO] finished tweaking crates.io crate pca9535 2.0.0
[INFO] tweaked toml for crates.io crate pca9535 2.0.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 52 packages to latest compatible versions
[INFO] [stderr]       Adding embedded-hal-bus v0.1.0 (available: v0.2.0)
[INFO] [stderr]       Adding rppal v0.17.1 (available: v0.19.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rppal v0.17.1
[INFO] [stderr]   Downloaded embedded-hal-bus v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 59a61b73c9afda34699e296cfcc3e541fa94b5b9b67cfbd0dbf7a699d7f3da2c
[INFO] running `Command { std: "docker" "start" "-a" "59a61b73c9afda34699e296cfcc3e541fa94b5b9b67cfbd0dbf7a699d7f3da2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "59a61b73c9afda34699e296cfcc3e541fa94b5b9b67cfbd0dbf7a699d7f3da2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59a61b73c9afda34699e296cfcc3e541fa94b5b9b67cfbd0dbf7a699d7f3da2c", kill_on_drop: false }`
[INFO] [stdout] 59a61b73c9afda34699e296cfcc3e541fa94b5b9b67cfbd0dbf7a699d7f3da2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 102efae8405f08adf34de8789389847cb20adf20025e418df20e94ca20ee6b13
[INFO] running `Command { std: "docker" "start" "-a" "102efae8405f08adf34de8789389847cb20adf20025e418df20e94ca20ee6b13", kill_on_drop: false }`
[INFO] [stderr]    Compiling embedded-hal v1.0.0
[INFO] [stderr]    Compiling pca9535 v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] running `Command { std: "docker" "inspect" "102efae8405f08adf34de8789389847cb20adf20025e418df20e94ca20ee6b13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "102efae8405f08adf34de8789389847cb20adf20025e418df20e94ca20ee6b13", kill_on_drop: false }`
[INFO] [stdout] 102efae8405f08adf34de8789389847cb20adf20025e418df20e94ca20ee6b13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a2131cca41343a467dc71bf9466a859e9de9c953755d09f052cce2bb4ee1738
[INFO] running `Command { std: "docker" "start" "-a" "4a2131cca41343a467dc71bf9466a859e9de9c953755d09f052cce2bb4ee1738", kill_on_drop: false }`
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling nb v1.1.0
[INFO] [stderr]    Compiling sdd v3.0.4
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling embedded-hal-bus v0.1.0
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling spin_sleep v1.2.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling syn v2.0.86
[INFO] [stderr]    Compiling nb v0.1.3
[INFO] [stderr]    Compiling embedded-hal-nb v1.0.0
[INFO] [stderr]    Compiling embedded-hal v0.2.7
[INFO] [stderr]    Compiling rppal v0.17.1
[INFO] [stderr]    Compiling scc v2.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serial_test_derive v3.1.1
[INFO] [stderr]    Compiling serial_test v3.1.1
[INFO] [stderr]    Compiling pca9535 v2.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |     static IO_EXPANDER: Lazy<IoExpander<ShareableI2c, CachedExpander, Mutex<CachedExpander>>> =
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:213:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |       static IO_EXPANDER: Lazy<
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 214 | |         IoExpander<ShareableI2c, ImmediateExpander, Mutex<ImmediateExpander>>,
[INFO] [stdout] 215 | |     > = Lazy::new(|| {
[INFO] [stdout]     | |_____^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 | /         Lazy::new(|| {
[INFO] [stdout] 241 | |             let expander = Pca9535Cached::new(
[INFO] [stdout] 242 | |                 MutexDevice::new(&I2C_MUTEX),
[INFO] [stdout] 243 | |                 ADDR,
[INFO] [stdout] ...   |
[INFO] [stdout] 249 | |             IoExpander::new(expander)
[INFO] [stdout] 250 | |         });
[INFO] [stdout]     | |__________^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |       > = Lazy::new(|| {
[INFO] [stdout]     |  _________^
[INFO] [stdout] 216 | |         let expander = Pca9535Immediate::new(MutexDevice::new(&I2C_MUTEX), ADDR);
[INFO] [stdout] 217 | |
[INFO] [stdout] 218 | |         IoExpander::new(expander)
[INFO] [stdout] 219 | |     });
[INFO] [stdout]     | |______^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         IoExpander::new(expander)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander::<I2C, Ex, Em>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:26:9
[INFO] [stdout]     |
[INFO] [stdout] 26  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander::<I2C, Ex, Em>::new`
[INFO] [stdout] ...
[INFO] [stdout] 30  |     pub fn new(expander: Ex) -> IoExpander<I2C, Ex, Em> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             IoExpander::new(expander)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander::<I2C, Ex, Em>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:26:9
[INFO] [stdout]     |
[INFO] [stdout] 26  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander::<I2C, Ex, Em>::new`
[INFO] [stdout] ...
[INFO] [stdout] 30  |     pub fn new(expander: Ex) -> IoExpander<I2C, Ex, Em> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         IoExpander::new(expander)
[INFO] [stdout]     |         ^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |     > = Lazy::new(|| {
[INFO] [stdout]     |         ^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             IoExpander::new(expander)
[INFO] [stdout]     |             ^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |         Lazy::new(|| {
[INFO] [stdout]     |         ^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:220:26
[INFO] [stdout]     |
[INFO] [stdout] 220 |     static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:220:46
[INFO] [stdout]     |
[INFO] [stdout] 220 |       static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 221 | |         let pca9535_gpio = Pca9535GPIO {
[INFO] [stdout] 222 | |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout] 223 | |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout] ...   |
[INFO] [stdout] 230 | |         Mutex::new(pca9535_gpio)
[INFO] [stdout] 231 | |     });
[INFO] [stdout]     | |______^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:251:26
[INFO] [stdout]     |
[INFO] [stdout] 251 |     static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:222:44
[INFO] [stdout]     |
[INFO] [stdout] 222 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:251:46
[INFO] [stdout]     |
[INFO] [stdout] 251 |       static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 252 | |         let pca9535_gpio = Pca9535GPIO {
[INFO] [stdout] 253 | |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout] 254 | |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout] ...   |
[INFO] [stdout] 261 | |         Mutex::new(pca9535_gpio)
[INFO] [stdout] 262 | |     });
[INFO] [stdout]     | |______^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:253:44
[INFO] [stdout]     |
[INFO] [stdout] 253 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:222:43
[INFO] [stdout]     |
[INFO] [stdout] 222 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     --------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<_>`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Immediate<MutexDevice<'_, I2c>>, Mutex<Pca9535Immediate<...>>>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:48:9
[INFO] [stdout]     |
[INFO] [stdout] 48  |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 56  |     pub fn new(expander: &'a Io, bank: GPIOBank, pin: u8) -> Result<Self, ExpanderError<E>> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-12699750169106471334.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:253:43
[INFO] [stdout]     |
[INFO] [stdout] 253 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     --------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<_>`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<MutexDevice<'_, I2c>, ShareableInputPin<'_, InputPin>>, ...>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:48:9
[INFO] [stdout]     |
[INFO] [stdout] 48  |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 56  |     pub fn new(expander: &'a Io, bank: GPIOBank, pin: u8) -> Result<Self, ExpanderError<E>> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-1825153285665155116.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:221:28
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let pca9535_gpio = Pca9535GPIO {
[INFO] [stdout]     |                            ^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Immediate<MutexDevice<'_, I2c>>, Mutex<Pca9535Immediate<...>>>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `Pca9535GPIO`
[INFO] [stdout]    --> tests/common/mod.rs:53:8
[INFO] [stdout]     |
[INFO] [stdout] 51  | pub struct Pca9535GPIO<'a, T, I2C>
[INFO] [stdout]     |            ----------- required by a bound in this struct
[INFO] [stdout] 52  | where
[INFO] [stdout] 53  |     T: SyncExpander<I2C>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^ required by this bound in `Pca9535GPIO`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-10428372260187607556.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:223:43
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:223:42
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    --------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<_>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Immediate<MutexDevice<'_, I2c>>, Mutex<Pca9535Immediate<...>>>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:48:9
[INFO] [stdout]     |
[INFO] [stdout] 48  |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 56  |     pub fn new(expander: &'a Io, bank: GPIOBank, pin: u8) -> Result<Self, ExpanderError<E>> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-2175552286683886000.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:223:20
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:252:28
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let pca9535_gpio = Pca9535GPIO {
[INFO] [stdout]     |                            ^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<MutexDevice<'_, I2c>, ShareableInputPin<'_, InputPin>>, ...>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `Pca9535GPIO`
[INFO] [stdout]    --> tests/common/mod.rs:53:8
[INFO] [stdout]     |
[INFO] [stdout] 51  | pub struct Pca9535GPIO<'a, T, I2C>
[INFO] [stdout]     |            ----------- required by a bound in this struct
[INFO] [stdout] 52  | where
[INFO] [stdout] 53  |     T: SyncExpander<I2C>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^ required by this bound in `Pca9535GPIO`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-12544915185650848233.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:223:20
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:254:43
[INFO] [stdout]     |
[INFO] [stdout] 254 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:224:22
[INFO] [stdout]     |
[INFO] [stdout] 224 |               _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 225 | |                 .unwrap(),
[INFO] [stdout]     | |_________________________^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:254:42
[INFO] [stdout]     |
[INFO] [stdout] 254 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    --------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<_>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<MutexDevice<'_, I2c>, ShareableInputPin<'_, InputPin>>, ...>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:48:9
[INFO] [stdout]     |
[INFO] [stdout] 48  |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderInputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 56  |     pub fn new(expander: &'a Io, bank: GPIOBank, pin: u8) -> Result<Self, ExpanderError<E>> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-14081345914267744010.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:224:46
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:254:20
[INFO] [stdout]     |
[INFO] [stdout] 254 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ---------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<_>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Immediate<MutexDevice<'_, I2c>>, Mutex<Pca9535Immediate<...>>>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-666917112156342812.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:254:20
[INFO] [stdout]     |
[INFO] [stdout] 254 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:255:22
[INFO] [stdout]     |
[INFO] [stdout] 255 |               _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 256 | |                 .unwrap(),
[INFO] [stdout]     | |_________________________^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:224:22
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |               out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 227 | |                 .unwrap(),
[INFO] [stdout]     | |_________________________^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:255:46
[INFO] [stdout]     |
[INFO] [stdout] 255 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:226:45
[INFO] [stdout]     |
[INFO] [stdout] 226 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                                             ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:226:44
[INFO] [stdout]     |
[INFO] [stdout] 226 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                     ---------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<_>`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Immediate<MutexDevice<'_, I2c>>, Mutex<Pca9535Immediate<...>>>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-6164674966507019085.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:255:45
[INFO] [stdout]     |
[INFO] [stdout] 255 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ---------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<_>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<MutexDevice<'_, I2c>, ShareableInputPin<'_, InputPin>>, ...>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-807857618813725107.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:255:22
[INFO] [stdout]     |
[INFO] [stdout] 255 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |               out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 258 | |                 .unwrap(),
[INFO] [stdout]     | |_________________________^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         Mutex::new(pca9535_gpio)
[INFO] [stdout]     |         ^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:257:45
[INFO] [stdout]     |
[INFO] [stdout] 257 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                                             ^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         Mutex::new(pca9535_gpio)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:220:46
[INFO] [stdout]     |
[INFO] [stdout] 220 |     static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |                                              ^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:257:44
[INFO] [stdout]     |
[INFO] [stdout] 257 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                     ---------------------- ^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`, which is required by `IoExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<_>`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<MutexDevice<'_, I2c>, ShareableInputPin<'_, InputPin>>, ...>` to implement `SyncExpander<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>>`
[INFO] [stdout] note: required by a bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/pin.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     Io: SyncExpander<I2C>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `ExpanderOutputPin::<'a, I2C, Io>::new`
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-4503398494314976713.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         Mutex::new(pca9535_gpio)
[INFO] [stdout]     |         ^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         Mutex::new(pca9535_gpio)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:251:46
[INFO] [stdout]     |
[INFO] [stdout] 251 |     static PCA9535_GPIO: Lazy<Pca9535Gpio> = Lazy::new(|| {
[INFO] [stdout]     |                                              ^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:237:32
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:237:32
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:268:32
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:268:32
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_high` exists for struct `ExpanderInputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/immediate.rs:241:36
[INFO] [stdout]     |
[INFO] [stdout] 241 |         assert!(pca9535_gpio.in0_4.is_high().unwrap());
[INFO] [stdout]     |                                    ^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:20:1
[INFO] [stdout]     |
[INFO] [stdout] 20  | pub struct ExpanderInputPin<'a, I2C, Io>
[INFO] [stdout]     | ---------------------------------------- doesn't satisfy `_: InputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-2308787711509181767.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderInputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>>: embedded_hal::digital::InputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |         assert!(pca9535_gpio.in0_4.is_high().unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_high` exists for struct `ExpanderInputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/cached.rs:272:36
[INFO] [stdout]     |
[INFO] [stdout] 272 |         assert!(pca9535_gpio.in0_4.is_high().unwrap());
[INFO] [stdout]     |                                    ^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:20:1
[INFO] [stdout]     |
[INFO] [stdout] 20  | pub struct ExpanderInputPin<'a, I2C, Io>
[INFO] [stdout]     | ---------------------------------------- doesn't satisfy `_: InputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-8955078985861001488.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderInputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>>: embedded_hal::digital::InputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:272:17
[INFO] [stdout]     |
[INFO] [stdout] 272 |         assert!(pca9535_gpio.in0_4.is_high().unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:248:32
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:279:32
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:248:32
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:279:32
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_low` exists for struct `ExpanderInputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/immediate.rs:252:36
[INFO] [stdout]     |
[INFO] [stdout] 252 |         assert!(pca9535_gpio.in0_4.is_low().unwrap());
[INFO] [stdout]     |                                    ^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:20:1
[INFO] [stdout]     |
[INFO] [stdout] 20  | pub struct ExpanderInputPin<'a, I2C, Io>
[INFO] [stdout]     | ---------------------------------------- doesn't satisfy `_: InputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-2308787711509181767.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderInputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>>: embedded_hal::digital::InputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_low` exists for struct `ExpanderInputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/cached.rs:283:36
[INFO] [stdout]     |
[INFO] [stdout] 283 |         assert!(pca9535_gpio.in0_4.is_low().unwrap());
[INFO] [stdout]     |                                    ^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:20:1
[INFO] [stdout]     |
[INFO] [stdout] 20  | pub struct ExpanderInputPin<'a, I2C, Io>
[INFO] [stdout]     | ---------------------------------------- doesn't satisfy `_: InputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-8955078985861001488.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderInputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>>: embedded_hal::digital::InputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:283:17
[INFO] [stdout]     |
[INFO] [stdout] 283 |         assert!(pca9535_gpio.in0_4.is_low().unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:252:17
[INFO] [stdout]     |
[INFO] [stdout] 252 |         assert!(pca9535_gpio.in0_4.is_low().unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:259:32
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:290:32
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:259:32
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:290:32
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_low` exists for struct `ExpanderOutputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/immediate.rs:261:29
[INFO] [stdout]     |
[INFO] [stdout] 261 |         pca9535_gpio.out1_5.set_low().unwrap();
[INFO] [stdout]     |                             ^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub struct ExpanderOutputPin<'a, I2C, Io>
[INFO] [stdout]     | ----------------------------------------- doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-2097609420390217294.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderOutputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>>: embedded_hal::digital::OutputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         pca9535_gpio.out1_5.set_low().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_low` exists for struct `ExpanderOutputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/cached.rs:292:29
[INFO] [stdout]     |
[INFO] [stdout] 292 |         pca9535_gpio.out1_5.set_low().unwrap();
[INFO] [stdout]     |                             ^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub struct ExpanderOutputPin<'a, I2C, Io>
[INFO] [stdout]     | ----------------------------------------- doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-105182448565620397.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderOutputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>>: embedded_hal::digital::OutputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |         pca9535_gpio.out1_5.set_low().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:270:32
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:270:32
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:301:32
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:301:32
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut pca9535_gpio = PCA9535_GPIO.lock().unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_high` exists for struct `ExpanderOutputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/immediate.rs:272:29
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pca9535_gpio.out1_5.set_high().unwrap();
[INFO] [stdout]     |                             ^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub struct ExpanderOutputPin<'a, I2C, Io>
[INFO] [stdout]     | ----------------------------------------- doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/immediate-d579d27883b0e55f.long-type-2097609420390217294.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderOutputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>, Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>>>: embedded_hal::digital::OutputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>: ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not satisfied
[INFO] [stdout]    --> tests/immediate.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |         pca9535_gpio.out1_5.set_high().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>` is not implemented for `Mutex<Pca9535Immediate<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_high` exists for struct `ExpanderOutputPin<'static, MutexDevice<'static, I2c>, IoExpander<MutexDevice<'static, I2c>, ..., ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/cached.rs:303:29
[INFO] [stdout]     |
[INFO] [stdout] 303 |         pca9535_gpio.out1_5.set_high().unwrap();
[INFO] [stdout]     |                             ^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/pin.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub struct ExpanderOutputPin<'a, I2C, Io>
[INFO] [stdout]     | ----------------------------------------- doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/expander/io.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     | ---------------------------------- doesn't satisfy `_: SyncExpander<MutexDevice<'static, I2c>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the full type name has been written to '/opt/rustwide/target/debug/deps/cached-2a2a88d240591176.long-type-105182448565620397.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>: SyncExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>>`
[INFO] [stdout]             which is required by `ExpanderOutputPin<'static, embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, IoExpander<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>, Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>>>: embedded_hal::digital::OutputPin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>: ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not satisfied
[INFO] [stdout]    --> tests/cached.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         pca9535_gpio.out1_5.set_high().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `IoExpander`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/expander/io.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct IoExpander<I2C, Ex, Em>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16  |     Em: ExpanderMutex<Ex>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ required by this bound in `IoExpander`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pca9535` (test "immediate") due to 43 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `pca9535` (test "cached") due to 43 previous errors
[INFO] running `Command { std: "docker" "inspect" "4a2131cca41343a467dc71bf9466a859e9de9c953755d09f052cce2bb4ee1738", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a2131cca41343a467dc71bf9466a859e9de9c953755d09f052cce2bb4ee1738", kill_on_drop: false }`
[INFO] [stdout] 4a2131cca41343a467dc71bf9466a859e9de9c953755d09f052cce2bb4ee1738
