[INFO] fetching crate sh1108 0.2.0...
[INFO] testing sh1108-0.2.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate sh1108 0.2.0 into /workspace/builds/worker-3-tc2/source
[INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config
[INFO] started tweaking crates.io crate sh1108 0.2.0
[INFO] finished tweaking crates.io crate sh1108 0.2.0
[INFO] tweaked toml for crates.io crate sh1108 0.2.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sh1108 0.2.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sh1108 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 48a4dff15203b95db57c8799951a0bc28c584692e02755796bf32b89061f6c97
[INFO] running `Command { std: "docker" "start" "-a" "48a4dff15203b95db57c8799951a0bc28c584692e02755796bf32b89061f6c97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48a4dff15203b95db57c8799951a0bc28c584692e02755796bf32b89061f6c97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48a4dff15203b95db57c8799951a0bc28c584692e02755796bf32b89061f6c97", kill_on_drop: false }`
[INFO] [stdout] 48a4dff15203b95db57c8799951a0bc28c584692e02755796bf32b89061f6c97
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1f1cb35e84d990fffcb7f97d02082411a279ca335074b1553cd096f4b6a4d865
[INFO] running `Command { std: "docker" "start" "-a" "1f1cb35e84d990fffcb7f97d02082411a279ca335074b1553cd096f4b6a4d865", kill_on_drop: false }`
[INFO] [stderr]    Compiling az v1.2.1
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling sh1108 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling display-interface v0.5.0
[INFO] [stderr]    Compiling embedded-hal v1.0.0
[INFO] [stderr]    Compiling embedded-graphics-core v0.4.0
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.79s
[INFO] running `Command { std: "docker" "inspect" "1f1cb35e84d990fffcb7f97d02082411a279ca335074b1553cd096f4b6a4d865", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f1cb35e84d990fffcb7f97d02082411a279ca335074b1553cd096f4b6a4d865", kill_on_drop: false }`
[INFO] [stdout] 1f1cb35e84d990fffcb7f97d02082411a279ca335074b1553cd096f4b6a4d865
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cbb114c5cd35d25a8a70f2010c2d21984787a1eec99f273c0d5c2d2bad1485cb
[INFO] running `Command { std: "docker" "start" "-a" "cbb114c5cd35d25a8a70f2010c2d21984787a1eec99f273c0d5c2d2bad1485cb", kill_on_drop: false }`
[INFO] [stderr]    Compiling cortex-m v0.7.7
[INFO] [stderr]    Compiling nb v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling vcell v0.1.3
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.48
[INFO] [stderr]    Compiling bitfield v0.13.2
[INFO] [stderr]    Compiling cortex-m-rt v0.7.3
[INFO] [stderr]    Compiling embedded-hal-async v1.0.0
[INFO] [stderr]    Compiling bare-metal v0.2.5
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling stm32-usbd v0.6.0
[INFO] [stderr]    Compiling stm32f1 v0.15.1
[INFO] [stderr]    Compiling cortex-m-semihosting v0.5.0
[INFO] [stderr]    Compiling gcd v2.3.0
[INFO] [stderr]    Compiling nb v0.1.3
[INFO] [stderr]    Compiling volatile-register v0.2.0
[INFO] [stderr]    Compiling fugit v0.3.7
[INFO] [stderr]    Compiling usb-device v0.2.9
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling bare-metal v1.0.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling micromath v2.1.0
[INFO] [stderr]    Compiling byte-slice-cast v1.2.2
[INFO] [stderr]    Compiling embedded-hal v0.2.7
[INFO] [stderr]    Compiling embedded-dma v0.2.0
[INFO] [stderr]    Compiling bxcan v0.7.0
[INFO] [stderr]    Compiling display-interface-i2c v0.5.0
[INFO] [stderr]    Compiling display-interface-spi v0.5.0
[INFO] [stderr]    Compiling fugit-timer v0.1.3
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling panic-semihosting v0.6.0
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling embedded-graphics v0.8.1
[INFO] [stderr]    Compiling profont v0.7.0
[INFO] [stderr]    Compiling cortex-m-rt-macros v0.7.0
[INFO] [stderr]    Compiling stm32f1xx-hal v0.10.0
[INFO] [stderr]    Compiling sh1108 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0277]: the trait bound `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/image.rs:72:60
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-8640131407890073751.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/image.rs:72:75
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-8640131407890073751.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/image.rs:72:75
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-8640131407890073751.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/image.rs:72:19
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-8640131407890073751.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/image.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-17894121414860759136.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/image.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     disp.init().unwrap();
[INFO] [stdout]    |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-17894121414860759136.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/image.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-17894121414860759136.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/image.rs:81:40
[INFO] [stdout]     |
[INFO] [stdout]  81 |     Image::new(&im, Point::new(32, 0)).draw(&mut disp).unwrap();
[INFO] [stdout]     |                                        ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-8640131407890073751.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/image.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image-425f10f8b20ac3ea.long-type-17894121414860759136.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> examples/image_spi.rs:61:9
[INFO] [stdout]     |
[INFO] [stdout]  57 |     let spi = Spi::spi1(
[INFO] [stdout]     |               --------- arguments to this function are incorrect
[INFO] [stdout] ...
[INFO] [stdout]  61 |         spi::MODE_0,
[INFO] [stdout]     |         ^^^^^^^^^^^ expected `stm32f1xx_hal::spi::Mode`, found `embedded_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout] note: two different versions of crate `embedded_hal` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/spi.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the expected type `stm32f1xx_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the found type `embedded_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn spi1(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 3 arguments were supplied
[INFO] [stdout]    --> examples/image_spi.rs:66:25
[INFO] [stdout]     |
[INFO] [stdout]  66 |     let spi_interface = SPIInterface::new(spi, dc, cs);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^          -- unexpected argument #3 of type `stm32f1xx_hal::gpio::Pin<'A', 1, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn new(spi: SPI, dc: DC) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout]  66 -     let spi_interface = SPIInterface::new(spi, dc, cs);
[INFO] [stdout]  66 +     let spi_interface = SPIInterface::new(spi, dc);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:60
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-9554153568214856058.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:60
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-2574867143814024191.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[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] error[E0277]: the trait bound `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:75
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-9554153568214856058.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:75
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-2574867143814024191.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:75
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-9554153568214856058.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sh1108` (example "image") due to 9 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:75
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-2574867143814024191.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:19
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-9554153568214856058.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:71:19
[INFO] [stdout]     |
[INFO] [stdout]  71 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-2574867143814024191.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:73:10
[INFO] [stdout]     |
[INFO] [stdout]  73 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-3087008976555927300.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:75:10
[INFO] [stdout]     |
[INFO] [stdout]  75 |     disp.init().unwrap();
[INFO] [stdout]     |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-3087008976555927300.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:76:10
[INFO] [stdout]     |
[INFO] [stdout]  76 |     disp.flush().unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-3087008976555927300.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/rotation.rs:75:18
[INFO] [stdout]     |
[INFO] [stdout]  75 |         .connect(i2c_interface)
[INFO] [stdout]     |          ------- ^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/rotation.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-12298534938511611832.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/rotation.rs:76:10
[INFO] [stdout]     |
[INFO] [stdout]  76 |         .into();
[INFO] [stdout]     |          ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/rotation.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-12298534938511611832.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/rotation.rs:76:10
[INFO] [stdout]     |
[INFO] [stdout]  76 |         .into();
[INFO] [stdout]     |          ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/rotation.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-12298534938511611832.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/rotation.rs:72:19
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new()
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/rotation.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-12298534938511611832.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:80:40
[INFO] [stdout]     |
[INFO] [stdout]  80 |     Image::new(&im, Point::new(32, 0)).draw(&mut disp).unwrap();
[INFO] [stdout]     |                                        ^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-9554153568214856058.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:80:40
[INFO] [stdout]     |
[INFO] [stdout]  80 |     Image::new(&im, Point::new(32, 0)).draw(&mut disp).unwrap();
[INFO] [stdout]     |                                        ^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/image_spi.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  32 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-2574867143814024191.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/pixelsquare.rs:67:60
[INFO] [stdout]     |
[INFO] [stdout]  67 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/pixelsquare.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  24 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-5363876743638386465.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/image_spi.rs:82:10
[INFO] [stdout]     |
[INFO] [stdout]  82 |     disp.flush().unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/image_spi-6af7386cb8f406db.long-type-3087008976555927300.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/graphics.rs:72:60
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/graphics.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-3691097035879911317.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 |     disp.init().unwrap();
[INFO] [stdout]    |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/pixelsquare.rs:67:75
[INFO] [stdout]     |
[INFO] [stdout]  67 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/pixelsquare.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  24 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-5363876743638386465.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/pixelsquare.rs:67:75
[INFO] [stdout]     |
[INFO] [stdout]  67 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/pixelsquare.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  24 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-5363876743638386465.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/pixelsquare.rs:67:19
[INFO] [stdout]     |
[INFO] [stdout]  67 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/pixelsquare.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  24 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-5363876743638386465.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/graphics.rs:72:75
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/graphics.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-3691097035879911317.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/graphics.rs:72:75
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/graphics.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-3691097035879911317.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sh1108` (example "image_spi") due to 16 previous errors
[INFO] [stdout] error[E0599]: the method `set_rotation` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 |     disp.set_rotation(DisplayRotation::Rotate270).unwrap();
[INFO] [stdout]    |          ^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/graphics.rs:72:19
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/graphics.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-3691097035879911317.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `get_dimensions` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let (w, h) = disp.get_dimensions();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/rotation.rs:95:6
[INFO] [stdout]     |
[INFO] [stdout]  95 |     .draw(&mut disp)
[INFO] [stdout]     |      ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/rotation.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-12298534938511611832.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/rotation.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/rotation-117b907900098b4c.long-type-10472235595271059279.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sh1108` (example "rotation") due to 11 previous errors
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/graphics.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-15330725557016401124.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[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] error[E0599]: the method `init` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/graphics.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     disp.init().unwrap();
[INFO] [stdout]    |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-15330725557016401124.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> examples/demo.rs:57:9
[INFO] [stdout]     |
[INFO] [stdout]  53 |     let spi = Spi::spi1(
[INFO] [stdout]     |               --------- arguments to this function are incorrect
[INFO] [stdout] ...
[INFO] [stdout]  57 |         spi::MODE_0,
[INFO] [stdout]     |         ^^^^^^^^^^^ expected `stm32f1xx_hal::spi::Mode`, found `embedded_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout] note: two different versions of crate `embedded_hal` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/spi.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the expected type `stm32f1xx_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the found type `embedded_hal::spi::Mode`
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn spi1(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/graphics.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-15330725557016401124.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:60
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:60
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:71:10
[INFO] [stdout]    |
[INFO] [stdout] 71 |     disp.init().unwrap();
[INFO] [stdout]    |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/text.rs:74:60
[INFO] [stdout]     |
[INFO] [stdout]  74 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                    ------- ^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/text.rs:22:5
[INFO] [stdout]     |
[INFO] [stdout]  22 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  31 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `Builder::connect`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/builder.rs:99:13
[INFO] [stdout]     |
[INFO] [stdout]  97 |     pub fn connect<DI>(self, interface: DI) -> DisplayMode<RawMode<DI>>
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  98 |     where
[INFO] [stdout]  99 |         DI: display_interface::WriteOnlyDataCommand,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Builder::connect`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-9103086952724381621.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/graphics.rs:81:10
[INFO] [stdout]     |
[INFO] [stdout]  81 |         .draw(&mut disp)
[INFO] [stdout]     |          ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/graphics.rs:21:5
[INFO] [stdout]     |
[INFO] [stdout]  21 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  29 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-3691097035879911317.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:75
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/text.rs:74:75
[INFO] [stdout]     |
[INFO] [stdout]  74 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/text.rs:22:5
[INFO] [stdout]     |
[INFO] [stdout]  22 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  31 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-9103086952724381621.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:75
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `RawMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:34:15
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout]  34 |         MODE: DisplayModeTrait<DI>,
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/text.rs:74:75
[INFO] [stdout]     |
[INFO] [stdout]  74 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/text.rs:22:5
[INFO] [stdout]     |
[INFO] [stdout]  22 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  31 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DisplayModeTrait<I2CInterface<BlockingI2c<I2C1, (..., ...)>>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-9103086952724381621.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:75
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/text.rs:74:19
[INFO] [stdout]     |
[INFO] [stdout]  74 |     let mut disp: GraphicsMode<_> = Builder::new().connect(i2c_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/text.rs:22:5
[INFO] [stdout]     |
[INFO] [stdout]  22 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  31 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-9103086952724381621.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:75
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                                                                           ^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DisplayModeTrait<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`
[INFO] [stdout] note: required by a bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/displaymode.rs:31:28
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn into<DI, NMODE: DisplayModeTrait<DI>>(self) -> NMODE
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ required by this bound in `DisplayMode::<MODE>::into`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/graphics.rs:104:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     disp.flush().unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]     | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]             which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/graphics-66d33f99812a25b2.long-type-15330725557016401124.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:19
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:64:19
[INFO] [stdout]     |
[INFO] [stdout]  64 |     let mut disp: GraphicsMode<_> = Builder::new().connect(spi_interface).into();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout] note: required by a bound in `sh1108::mode::GraphicsMode`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/mode/graphics.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct GraphicsMode<DI>
[INFO] [stdout]     |            ------------ required by a bound in this struct
[INFO] [stdout]  30 | where
[INFO] [stdout]  31 |     DI: WriteOnlyDataCommand,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `GraphicsMode`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 |     disp.set_pixel(0, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[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] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     disp.set_pixel(1, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/demo.rs:66:10
[INFO] [stdout]     |
[INFO] [stdout]  66 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-18196856587952582250.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 |     disp.set_pixel(2, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/demo.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout]  68 |     disp.init().unwrap();
[INFO] [stdout]     |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-18196856587952582250.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sh1108` (example "graphics") due to 9 previous errors
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/demo.rs:69:10
[INFO] [stdout]     |
[INFO] [stdout]  69 |     disp.flush().unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-18196856587952582250.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:71:15
[INFO] [stdout]     |
[INFO] [stdout]  71 |     draw_demo(&mut disp).unwrap();
[INFO] [stdout]     |     --------- ^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout] note: required by a bound in `draw_demo`
[INFO] [stdout]    --> examples/demo.rs:80:8
[INFO] [stdout]     |
[INFO] [stdout]  78 | fn draw_demo<D>(disp: &mut D) -> Result<(), D::Error>
[INFO] [stdout]     |    --------- required by a bound in this function
[INFO] [stdout]  79 | where
[INFO] [stdout]  80 |     D: embedded_graphics::draw_target::DrawTarget<Color = BinaryColor>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `draw_demo`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:71:15
[INFO] [stdout]     |
[INFO] [stdout]  71 |     draw_demo(&mut disp).unwrap();
[INFO] [stdout]     |     --------- ^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout] note: required by a bound in `draw_demo`
[INFO] [stdout]    --> examples/demo.rs:80:8
[INFO] [stdout]     |
[INFO] [stdout]  78 | fn draw_demo<D>(disp: &mut D) -> Result<(), D::Error>
[INFO] [stdout]     |    --------- required by a bound in this function
[INFO] [stdout]  79 | where
[INFO] [stdout]  80 |     D: embedded_graphics::draw_target::DrawTarget<Color = BinaryColor>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `draw_demo`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> examples/demo.rs:73:10
[INFO] [stdout]     |
[INFO] [stdout]  73 |     disp.flush().unwrap();
[INFO] [stdout]     |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-spi-0.5.0/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SPIInterface<SPI, DC> {
[INFO] [stdout]     | -------------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- doesn't satisfy `_: SpiDevice`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ doesn't satisfy `_: OutputPin`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>: SpiDevice`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]             `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin`
[INFO] [stdout]             which is required by `SPIInterface<Spi<stm32f1xx_hal::pac::SPI1, Spi1NoRemap, (stm32f1xx_hal::gpio::Pin<'A', 5, stm32f1xx_hal::gpio::Alternate>, stm32f1xx_hal::gpio::Pin<'A', 6>, stm32f1xx_hal::gpio::Pin<'A', 7, stm32f1xx_hal::gpio::Alternate>), u8>, stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-18196856587952582250.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `reset` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/text.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     disp.reset(&mut res, &mut delay).unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-4918267868674057623.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 `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, ...>, ..., ...), u8>: SpiDevice` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:71:5
[INFO] [stdout]     |
[INFO] [stdout]  71 |     draw_demo(&mut disp).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ the trait `SpiDevice` is not implemented for `Spi<SPI1, Spi1NoRemap, (Pin<'A', 5, Alternate>, Pin<'A', 6>, ...), u8>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:347:1
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub trait SpiDevice<Word: Copy + 'static = u8>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/spi.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct Spi<SPI, REMAP, PINS, FRAMESIZE, OPERATION = Master> {
[INFO] [stdout]     | --------------------------------------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-8076648725563741475.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 `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>: OutputPin` is not satisfied
[INFO] [stdout]    --> examples/demo.rs:71:5
[INFO] [stdout]     |
[INFO] [stdout]  71 |     draw_demo(&mut disp).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ the trait `OutputPin` is not implemented for `stm32f1xx_hal::gpio::Pin<'A', 2, stm32f1xx_hal::gpio::Output>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait OutputPin: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/demo.rs:25:5
[INFO] [stdout]     |
[INFO] [stdout]  25 | use embedded_hal::spi;
[INFO] [stdout]     |     ------------ one version of crate `embedded_hal` used here, as a direct dependency of the current crate
[INFO] [stdout] ...
[INFO] [stdout]  28 | use stm32f1xx_hal::{prelude::*, spi::Spi, stm32};
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/gpio.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub struct Pin<const P: char, const N: u8, MODE = Input<Floating>> {
[INFO] [stdout]     | ------------------------------------------------------------------ this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `SPIInterface<Spi<SPI1, Spi1NoRemap, (..., ..., ...), u8>, ...>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<SPIInterface<Spi<SPI1, Spi1NoRemap, ..., u8>, ...>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/demo-1d5f62fa60308663.long-type-11084474679312430712.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |     disp.set_pixel(3, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `init` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/text.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |     disp.init().unwrap();
[INFO] [stdout]    |          ^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-4918267868674057623.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/text.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-4918267868674057623.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 `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>: I2c` is not satisfied
[INFO] [stdout]    --> examples/text.rs:87:10
[INFO] [stdout]     |
[INFO] [stdout]  87 |         .draw(&mut disp)
[INFO] [stdout]     |          ^^^^ the trait `embedded_hal::i2c::I2c` is not implemented for `BlockingI2c<I2C1, (Pin<'B', 8, Alternate<OpenDrain>>, ...)>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `embedded_hal` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/text.rs:22:5
[INFO] [stdout]     |
[INFO] [stdout]  22 | use display_interface_i2c::I2CInterface;
[INFO] [stdout]     |     --------------------- one version of crate `embedded_hal` used here, as a dependency of crate `embedded_hal_async`
[INFO] [stdout] ...
[INFO] [stdout]  31 | use stm32f1xx_hal::{
[INFO] [stdout]     |     ------------- one version of crate `embedded_hal` used here, as a dependency of crate `stm32f1xx_hal`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]     | --------------------------------- this type doesn't implement the required trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/adc.rs:39:1
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub trait Channel<ADC> {
[INFO] [stdout]     | ---------------------- this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, Alternate<...>>, ...)>>` to implement `display_interface::WriteOnlyDataCommand`
[INFO] [stdout]     = note: required for `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>` to implement `DrawTarget`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-9103086952724381621.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/text.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/text-090fc9b602cb8f12.long-type-4918267868674057623.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     disp.set_pixel(3, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 |     disp.set_pixel(3, 1, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 |     disp.set_pixel(3, 2, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |     disp.set_pixel(3, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:87:10
[INFO] [stdout]    |
[INFO] [stdout] 87 |     disp.set_pixel(0, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 |     disp.set_pixel(1, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 |     disp.set_pixel(2, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:90:10
[INFO] [stdout]    |
[INFO] [stdout] 90 |     disp.set_pixel(3, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:93:10
[INFO] [stdout]    |
[INFO] [stdout] 93 |     disp.set_pixel(0, 0, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 |     disp.set_pixel(0, 1, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:95:10
[INFO] [stdout]    |
[INFO] [stdout] 95 |     disp.set_pixel(0, 2, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sh1108` (example "text") due to 9 previous errors
[INFO] [stdout] error[E0599]: the method `set_pixel` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 |     disp.set_pixel(0, 3, 1);
[INFO] [stdout]    |          ^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flush` exists for struct `GraphicsMode<I2CInterface<BlockingI2c<I2C1, (Pin<'B', 8, ...>, ...)>>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> examples/pixelsquare.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     disp.flush().unwrap();
[INFO] [stdout]    |          ^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/display-interface-i2c-0.5.0/src/lib.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct I2CInterface<I2C> {
[INFO] [stdout]    | ---------------------------- doesn't satisfy `_: WriteOnlyDataCommand`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/stm32f1xx-hal-0.10.0/src/i2c/blocking.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BlockingI2c<I2C, PINS> {
[INFO] [stdout]    | --------------------------------- doesn't satisfy `_: I2c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>: embedded_hal::i2c::I2c`
[INFO] [stdout]            which is required by `I2CInterface<BlockingI2c<I2C1, (stm32f1xx_hal::gpio::Pin<'B', 8, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>, stm32f1xx_hal::gpio::Pin<'B', 9, stm32f1xx_hal::gpio::Alternate<stm32f1xx_hal::gpio::OpenDrain>>)>>: display_interface::WriteOnlyDataCommand`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/pixelsquare-1f83de22a761c43d.long-type-13187509430959859713.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[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] [stderr] error: could not compile `sh1108` (example "demo") due to 17 previous errors
[INFO] [stderr] error: could not compile `sh1108` (example "pixelsquare") due to 24 previous errors
[INFO] running `Command { std: "docker" "inspect" "cbb114c5cd35d25a8a70f2010c2d21984787a1eec99f273c0d5c2d2bad1485cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbb114c5cd35d25a8a70f2010c2d21984787a1eec99f273c0d5c2d2bad1485cb", kill_on_drop: false }`
[INFO] [stdout] cbb114c5cd35d25a8a70f2010c2d21984787a1eec99f273c0d5c2d2bad1485cb
