[INFO] fetching crate sh1108 0.2.0...
[INFO] testing sh1108-0.2.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate sh1108 0.2.0 into /workspace/builds/worker-2-tc2/source
[INFO] removed /workspace/builds/worker-2-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-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sh1108 0.2.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-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-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3fbcfe4c8bd90c1fe5f70f0cd3c7863e604ae855056763571e104333a11ec741
[INFO] running `Command { std: "docker" "start" "-a" "3fbcfe4c8bd90c1fe5f70f0cd3c7863e604ae855056763571e104333a11ec741", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3fbcfe4c8bd90c1fe5f70f0cd3c7863e604ae855056763571e104333a11ec741", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3fbcfe4c8bd90c1fe5f70f0cd3c7863e604ae855056763571e104333a11ec741", kill_on_drop: false }`
[INFO] [stdout] 3fbcfe4c8bd90c1fe5f70f0cd3c7863e604ae855056763571e104333a11ec741
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 77aca2c6c4ecd1169df31c6917afeee65420a1e1a1e5e850c2506f585dfd7277
[INFO] running `Command { std: "docker" "start" "-a" "77aca2c6c4ecd1169df31c6917afeee65420a1e1a1e5e850c2506f585dfd7277", kill_on_drop: false }`
[INFO] [stderr]    Compiling az v1.2.1
[INFO] [stderr]    Compiling sh1108 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling embedded-hal v1.0.0
[INFO] [stderr]    Compiling display-interface v0.5.0
[INFO] [stderr]    Compiling embedded-graphics-core v0.4.0
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.51s
[INFO] running `Command { std: "docker" "inspect" "77aca2c6c4ecd1169df31c6917afeee65420a1e1a1e5e850c2506f585dfd7277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77aca2c6c4ecd1169df31c6917afeee65420a1e1a1e5e850c2506f585dfd7277", kill_on_drop: false }`
[INFO] [stdout] 77aca2c6c4ecd1169df31c6917afeee65420a1e1a1e5e850c2506f585dfd7277
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 800a14c188f7d770da728f12eb0b2a6bd98570f5bbc77d33c3a7a44dacae0fce
[INFO] running `Command { std: "docker" "start" "-a" "800a14c188f7d770da728f12eb0b2a6bd98570f5bbc77d33c3a7a44dacae0fce", kill_on_drop: false }`
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling nb v1.0.0
[INFO] [stderr]    Compiling cortex-m v0.7.7
[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 autocfg v1.0.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 gcd v2.3.0
[INFO] [stderr]    Compiling stm32-usbd v0.6.0
[INFO] [stderr]    Compiling cortex-m-semihosting v0.5.0
[INFO] [stderr]    Compiling stm32f1 v0.15.1
[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 embedded-hal v0.2.7
[INFO] [stderr]    Compiling micromath v2.1.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling bare-metal v1.0.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling usb-device v0.2.9
[INFO] [stderr]    Compiling embedded-dma v0.2.0
[INFO] [stderr]    Compiling byte-slice-cast v1.2.2
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling bxcan v0.7.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling fugit-timer v0.1.3
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling bare-metal v0.2.5
[INFO] [stderr]    Compiling display-interface-spi v0.5.0
[INFO] [stderr]    Compiling display-interface-i2c v0.5.0
[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[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: 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-0.2.7/src/spi.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the expected type
[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
[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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-14d6fbabb1efdd3d.long-type-9746151419249793984.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-14d6fbabb1efdd3d.long-type-5994865576654540183.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-14d6fbabb1efdd3d.long-type-9746151419249793984.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-14d6fbabb1efdd3d.long-type-5994865576654540183.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-14d6fbabb1efdd3d.long-type-9746151419249793984.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-14d6fbabb1efdd3d.long-type-5994865576654540183.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-14d6fbabb1efdd3d.long-type-9746151419249793984.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-14d6fbabb1efdd3d.long-type-5994865576654540183.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-14d6fbabb1efdd3d.long-type-10132931202473407888.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-14d6fbabb1efdd3d.long-type-10132931202473407888.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-14d6fbabb1efdd3d.long-type-10132931202473407888.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-14d6fbabb1efdd3d.long-type-9746151419249793984.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-176836620f80726b.long-type-15073651946330513688.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-176836620f80726b.long-type-15073651946330513688.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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-14d6fbabb1efdd3d.long-type-5994865576654540183.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-14d6fbabb1efdd3d.long-type-10132931202473407888.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-176836620f80726b.long-type-15073651946330513688.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-176836620f80726b.long-type-15073651946330513688.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[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-176836620f80726b.long-type-16895329564779591580.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] [stderr] warning: build failed, waiting for other jobs to finish...
[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-176836620f80726b.long-type-16895329564779591580.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-3bf63dfed5d54faa.long-type-8947156635758218883.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-3bf63dfed5d54faa.long-type-8947156635758218883.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-176836620f80726b.long-type-16895329564779591580.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-3bf63dfed5d54faa.long-type-8947156635758218883.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-3bf63dfed5d54faa.long-type-8947156635758218883.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-176836620f80726b.long-type-15073651946330513688.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/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-3bf63dfed5d54faa.long-type-5159512993012336723.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 `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-176836620f80726b.long-type-16895329564779591580.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/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-3bf63dfed5d54faa.long-type-5159512993012336723.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: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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-e606a515b76779c4.long-type-527582698588416996.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: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-3bf63dfed5d54faa.long-type-5159512993012336723.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 `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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-3bf63dfed5d54faa.long-type-8947156635758218883.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-e606a515b76779c4.long-type-527582698588416996.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-3bf63dfed5d54faa.long-type-5159512993012336723.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 `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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-e606a515b76779c4.long-type-527582698588416996.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-1619aa0adba0feb0.long-type-1715489107900925130.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-e606a515b76779c4.long-type-527582698588416996.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[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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-1619aa0adba0feb0.long-type-1715489107900925130.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-1619aa0adba0feb0.long-type-1715489107900925130.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-1619aa0adba0feb0.long-type-1715489107900925130.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-e606a515b76779c4.long-type-16277051573147109805.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-1619aa0adba0feb0.long-type-9051299366934433870.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-1619aa0adba0feb0.long-type-9051299366934433870.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-e606a515b76779c4.long-type-16277051573147109805.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-1619aa0adba0feb0.long-type-9051299366934433870.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-1619aa0adba0feb0.long-type-9051299366934433870.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: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-1619aa0adba0feb0.long-type-9051299366934433870.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-e606a515b76779c4.long-type-16277051573147109805.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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-e606a515b76779c4.long-type-527582698588416996.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] [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-1619aa0adba0feb0.long-type-9051299366934433870.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-1619aa0adba0feb0.long-type-9051299366934433870.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-e606a515b76779c4.long-type-16277051573147109805.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-1619aa0adba0feb0.long-type-9051299366934433870.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-1619aa0adba0feb0.long-type-9051299366934433870.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: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-1619aa0adba0feb0.long-type-9051299366934433870.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: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-1619aa0adba0feb0.long-type-9051299366934433870.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: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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-ff2fea851ec1b553.long-type-3467113661708805269.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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-ff2fea851ec1b553.long-type-3467113661708805269.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-ff2fea851ec1b553.long-type-3467113661708805269.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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-ff2fea851ec1b553.long-type-3467113661708805269.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-1619aa0adba0feb0.long-type-9051299366934433870.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-1619aa0adba0feb0.long-type-9051299366934433870.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: 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-0.2.7/src/spi.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub struct Mode {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ this is the expected type
[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
[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] [stderr] error: could not compile `sh1108` (example "pixelsquare") due to 24 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: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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-d0ca52cbe1f43caf.long-type-16069371839692438366.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-ff2fea851ec1b553.long-type-9015870108494641592.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-d0ca52cbe1f43caf.long-type-14330961745752593258.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: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-1619aa0adba0feb0.long-type-9051299366934433870.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-d0ca52cbe1f43caf.long-type-16069371839692438366.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-1619aa0adba0feb0.long-type-9051299366934433870.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-ff2fea851ec1b553.long-type-9015870108494641592.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-d0ca52cbe1f43caf.long-type-14330961745752593258.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-d0ca52cbe1f43caf.long-type-16069371839692438366.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-d0ca52cbe1f43caf.long-type-14330961745752593258.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-ff2fea851ec1b553.long-type-9015870108494641592.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/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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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]    --> 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-d0ca52cbe1f43caf.long-type-16069371839692438366.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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]    --> 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-d0ca52cbe1f43caf.long-type-14330961745752593258.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-d0ca52cbe1f43caf.long-type-17642001551857636312.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_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-ff2fea851ec1b553.long-type-9015870108494641592.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-d0ca52cbe1f43caf.long-type-17642001551857636312.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-ff2fea851ec1b553.long-type-9015870108494641592.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: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-d0ca52cbe1f43caf.long-type-17642001551857636312.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] help: the trait `embedded_hal::i2c::I2c<A>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/i2c.rs:408:1
[INFO] [stdout]     |
[INFO] [stdout] 408 | impl<A: AddressMode, T: I2c<A> + ?Sized> I2c<A> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-ff2fea851ec1b553.long-type-3467113661708805269.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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-d0ca52cbe1f43caf.long-type-16069371839692438366.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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-d0ca52cbe1f43caf.long-type-14330961745752593258.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-ff2fea851ec1b553.long-type-9015870108494641592.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-d0ca52cbe1f43caf.long-type-17642001551857636312.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] 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/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] help: the trait `SpiDevice<Word>` is implemented for `&mut T`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/spi.rs:406:1
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl<Word: Copy + 'static, T: SpiDevice<Word> + ?Sized> SpiDevice<Word> for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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-d0ca52cbe1f43caf.long-type-16069371839692438366.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 expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-0.2.7/src/digital/v2.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | pub trait OutputPin {
[INFO] [stdout]     | -------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `OutputPin`
[INFO] [stdout]    --> src/builder.rs:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<PinE: hal::digital::Error> OutputPin for NoOutputPin<PinE> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `NoOutputPin<PinE>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/embedded-hal-1.0.0/src/digital.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl<T: OutputPin + ?Sized> OutputPin for &mut T {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&mut T`
[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-d0ca52cbe1f43caf.long-type-14330961745752593258.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] [stderr] error: could not compile `sh1108` (example "demo") due to 17 previous errors
[INFO] running `Command { std: "docker" "inspect" "800a14c188f7d770da728f12eb0b2a6bd98570f5bbc77d33c3a7a44dacae0fce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "800a14c188f7d770da728f12eb0b2a6bd98570f5bbc77d33c3a7a44dacae0fce", kill_on_drop: false }`
[INFO] [stdout] 800a14c188f7d770da728f12eb0b2a6bd98570f5bbc77d33c3a7a44dacae0fce
