I have been using the embassy-embedded-hal async shared bus for my seven bit devices on my bus. I have a device that requires ten bit, which I can't get to work. The embedded-hal-async crate seems to support ten bit addresses, so it might be easy to add?
I use a similar implemention to this: https://github.com/embassy-rs/embassy/blob/main/examples/stm32h7/src/bin/i2c_shared.rs
I am using embassy-stm32 if anyone has any tips on working around the issue as well.