rust-embedded / rust-embedded/linux-embedded-hal
v0.4.0 is missing embedded_hal_0_2::blocking::i2c traits?
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 319
- Forks
- 60
- Avg merge
- 12h 31m
- Merged PRs (30d)
- 1
Description
This breaks when moving from 0.3.2 to [0.4.0-alpha.1](https://github.com/rust-embedded/linux-embedded-hal/compare/v0.3.0...v0.4.0-alpha.1) -- but the changelog does not mention this?
error[E0277]: the trait bound `I2cdev: _embedded_hal_blocking_i2c_Write` is not satisfied
--> examples/basic.rs:12:26
|
12 | Rv8803::from_i2c(i2c, rv8803::bus::Address::Default).expect("Failed to initialize RV8803");
| ---------------- ^^^ the trait `_embedded_hal_blocking_i2c_Write` is not implemented for `I2cdev`
| |
| required by a bound introduced by this call
|
note: required by a bound in `rv8803::<impl Rv8803<Bus<'a, I2C>>>::from_i2c`
--> /home/mike/esp/rv8803/src/lib.rs:29:11
|
29 | + embedded_hal_0_2::blocking::i2c::Write<Error = E>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `rv8803::<impl Rv8803<Bus<'a, I2C>>>::from_i2c`
...
39 | pub fn from_i2c(i2c: I2C, address: crate::bus::Address) -> Result<Self, E> {
| -------- required by a bound in this associated function
error[E0277]: the trait bound `I2cdev: WriteRead` is not satisfied
--> examples/basic.rs:12:26
|
12 | Rv8803::from_i2c(i2c, rv8803::bus::Address::Default).expect("Failed to initialize RV8803");
| ---------------- ^^^ the trait `WriteRead` is not implemented for `I2cdev`
| |
| required by a bound introduced by this call
|
note: required by a bound in `rv8803::<impl Rv8803<Bus<'a, I2C>>>::from_i2c`
--> /home/mike/esp/rv8803/src/lib.rs:28:10
|
28 | I2C: embedded_hal_0_2::blocking::i2c::WriteRead<Error = E>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `rv8803::<impl Rv8803<Bus<'a, I2C>>>::from_i2c`
...
39 | pub fn from_i2c(i2c: I2C, address: crate::bus::Address) -> Result<Self, E> {
| -------- required by a bound in this associated function
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the embedded-hal implementations in v0.3.2 and v0.4.0-alpha.1, then inspect examples/basic.rs and the reported trait bounds in the consumer code. Done means the I2cdev type satisfies the required embedded_hal_0_2 blocking I2C traits or the compatibility change is clearly documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, rust
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100