[INFO] fetching crate pca9535 2.0.0...
[INFO] checking pca9535-2.0.0 against master#39cb3386ddc6c71657418be28dbb3987eea4aa4b for pr-133536
[INFO] extracting crate pca9535 2.0.0 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate pca9535 2.0.0 on toolchain 39cb3386ddc6c71657418be28dbb3987eea4aa4b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-2-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-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[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" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rppal v0.17.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8fd7e165890817811bcaa6f4485442bf9e020867cc571400cd4874006f04aa45
[INFO] running `Command { std: "docker" "start" "-a" "8fd7e165890817811bcaa6f4485442bf9e020867cc571400cd4874006f04aa45", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8fd7e165890817811bcaa6f4485442bf9e020867cc571400cd4874006f04aa45", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fd7e165890817811bcaa6f4485442bf9e020867cc571400cd4874006f04aa45", kill_on_drop: false }`
[INFO] [stdout] 8fd7e165890817811bcaa6f4485442bf9e020867cc571400cd4874006f04aa45
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b08fec5a0b5a792dfe4be7263245eaceb873f499dc167426a8c7a01b88f10448
[INFO] running `Command { std: "docker" "start" "-a" "b08fec5a0b5a792dfe4be7263245eaceb873f499dc167426a8c7a01b88f10448", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]     Checking embedded-hal v1.0.0
[INFO] [stderr]     Checking sdd v3.0.4
[INFO] [stderr]    Compiling embedded-hal-bus v0.1.0
[INFO] [stderr]     Checking spin_sleep v1.2.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking embedded-hal v0.2.7
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking embedded-hal-nb v1.0.0
[INFO] [stderr]     Checking pca9535 v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rppal v0.17.1
[INFO] [stderr]     Checking scc v2.2.5
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]     Checking serial_test v3.2.0
[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]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |     static IO_EXPANDER: Lazy<IoExpander<ShareableI2c, CachedExpander, Mutex<CachedExpander>>> =
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     | |______^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |         ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |         ^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     | |__________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |             ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |         ^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                          ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                          ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     | |______^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     | |______^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                            ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                     --------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, 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-2c0b623d5ccc4f49.long-type-4020789274070711760.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]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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:221:28
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let pca9535_gpio = Pca9535GPIO {
[INFO] [stdout]     |                            ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, 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-2c0b623d5ccc4f49.long-type-16984251310320771406.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<'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]     |                                            ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                     --------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<..., ...>, ...>` 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-0636f6eb5dfb1ba4.long-type-6500651740999596763.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:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |             _in0_3: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 3).unwrap(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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:223:43
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                    --------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, 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-2c0b623d5ccc4f49.long-type-12287987997282378589.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]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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:20
[INFO] [stdout]     |
[INFO] [stdout] 223 |             in0_4: ExpanderInputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 4).unwrap(),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     | |_________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                            ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<..., ...>, ...>` 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-0636f6eb5dfb1ba4.long-type-3303972105984705666.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<'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]     |                                           ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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:224:46
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                    --------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<..., ...>, ...>` 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-0636f6eb5dfb1ba4.long-type-17848262676898376582.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]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     | |_________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                              ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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:45
[INFO] [stdout]     |
[INFO] [stdout] 255 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ---------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<..., ...>, ...>` 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-0636f6eb5dfb1ba4.long-type-2424268469545993780.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:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ---------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, 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-2c0b623d5ccc4f49.long-type-7732936549299695989.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:224:22
[INFO] [stdout]     |
[INFO] [stdout] 224 |             _out0_7: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank0, 7, PinState::High)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     | |_________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                             ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                     ---------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, 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-2c0b623d5ccc4f49.long-type-3434141969865011011.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:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |             out1_5: ExpanderOutputPin::new(&*IO_EXPANDER, GPIOBank::Bank1, 5, PinState::Low)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |         ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     | |_________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                             ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                     ---------------------- ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[INFO] [stdout]     = help: the trait `SyncExpander<I2C>` is implemented for `IoExpander<I2C, Ex, Em>`
[INFO] [stdout]     = note: required for `IoExpander<MutexDevice<'_, I2c>, Pca9535Cached<..., ...>, ...>` 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-0636f6eb5dfb1ba4.long-type-515367545413652501.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]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'_, rppal::i2c::I2c>, ShareableInputPin<'_, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |         ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                              ^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                              ^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-0636f6eb5dfb1ba4.long-type-8824610996393820057.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]     |                 ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-2c0b623d5ccc4f49.long-type-6111212622572583017.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]     |                 ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-0636f6eb5dfb1ba4.long-type-8824610996393820057.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]     |                 ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-2c0b623d5ccc4f49.long-type-6111212622572583017.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<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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                 ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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>, ...>`, 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-0636f6eb5dfb1ba4.long-type-4333194727796902254.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]     |         ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-2c0b623d5ccc4f49.long-type-14405614703255793164.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]     |         ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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>, ...>`, 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-0636f6eb5dfb1ba4.long-type-4333194727796902254.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]     |         ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `ExpanderMutex<Pca9535Cached<embedded_hal_bus::i2c::MutexDevice<'static, rppal::i2c::I2c>, ShareableInputPin<'static, rppal::gpio::InputPin>>>` is not implemented for `Mutex<Pca9535Cached<MutexDevice<'static, I2c>, ...>>`
[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>, ...>`, 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-2c0b623d5ccc4f49.long-type-14405614703255793164.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]     |         ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout]     = help: 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] 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" "b08fec5a0b5a792dfe4be7263245eaceb873f499dc167426a8c7a01b88f10448", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b08fec5a0b5a792dfe4be7263245eaceb873f499dc167426a8c7a01b88f10448", kill_on_drop: false }`
[INFO] [stdout] b08fec5a0b5a792dfe4be7263245eaceb873f499dc167426a8c7a01b88f10448
