Hey, i get in to problem with i2c trait in embassy. Im trying to move my sensor reading to separate async task but i can not satisfy, generic. Here is my implementation of sensor readings: https://github.com/holotrack/scd41-embassy-rs/blob/main/src/sdc41.rs and here is task code which is getting me in trouble: ``` #[embassy_executor::task] async fn measurments_task(sensor: SDC41>) -> ! { sensor.measurments.await } ``` this giving me lot of errors: https://pastebin.com/unAG0N6R I tried to workaround it by creating Trait Sensor trait for my SDC41 struct to use it like that: ``` #[embassy_executor::task] async fn measurments_task(sensor: Sensor) -> ! { sensor.measurments.await } ``` and updated sensor crate: ``` pub trait Sensor { fn new(addr: u8, i2c: T) -> Self; async fn measurements(&mut self); fn co2(&self) -> u16; fn temperature(&self) -> f32; fn humidity(&self) -> f32; } impl Sensor> for SDC41 { fn new(addr: u8, i2c: T) -> Self { Self { addr, i2c, co2: 0, crc_co2: 0, temperature: 0, crc_temperature: 0, humidity: 0, crc_humidity: 0, } } ``` and second solutions errors: ``` warning: `embassy-rp` (lib) generated 2 warnings Compiling scd41-embassy-rs v0.1.0 (/home/holo/workspace/embeded/scd41-embassy-rs) error[E0412]: cannot find type `T` in this scope --> src/sdc41.rs:33:48 | 33 | impl Sensor> for SDC41 { | ^ not found in this scope | help: you might be missing a type parameter | 33 | impl Sensor> for SDC41 { | +++ error[E0412]: cannot find type `T` in this scope --> src/sdc41.rs:34:27 | 34 | fn new(addr: u8, i2c: T) -> Self { | ^ not found in this scope error[E0658]: associated type bounds are unstable --> src/sdc41.rs:33:13 | 33 | impl Sensor> for SDC41 { | ^^^^^^^^^^^^^^^^^^^^^^^ | = note: see issue #52662 for more information = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable = note: this compiler was built on 2024-01-25; consider upgrading it if it is out of date error[E0107]: trait takes 1 generic argument but 0 generic arguments were supplied --> src/sdc41.rs:33:6 | 33 | impl Sensor> for SDC41 { | ^^^^^^ expected 1 generic argument | note: trait defined here, with 1 generic parameter: `T` --> src/sdc41.rs:25:11 | 25 | pub trait Sensor { | ^^^^^^ - help: add missing generic argument | 33 | impl Sensor> for SDC41 { | ++ error[E0229]: associated type bindings are not allowed here --> src/sdc41.rs:33:13 | 33 | impl Sensor> for SDC41 { | ^^^^^^^^^^^^^^^^^^^^^^^ associated type not allowed here Some errors have detailed explanations: E0107, E0229, E0412, E0658. For more information about an error, try `rustc --explain E0107`. error: could not compile `scd41-embassy-rs` (lib) due to 5 previous errors ```