<M9names[m]> "I feel like I'm missing somethin..." <- The goal is to make this function `no_std`. I am focused on the sync version of this library code, but also want to create an `async` version.
```rs
    fn with_smbus<R>(&mut self, op: impl FnOnce(&mut Self::SmBus, SevenBitAddress) -> R) -> R {
        if let Some(last_command) = self.last_command {
            let since_last_command = last_command.elapsed();
            if since_last_command <= TRANSACTION_THROTTLE_DURATION {
                Delay.delay_ms(
                    (TRANSACTION_THROTTLE_DURATION - since_last_command).as_millis() as u32,
                );
            }
        }
        let res = op(&mut self.smbus, self.address);
        // NOTE: This does not handle the case where an error occurs on the host
        // platform. If the problem is not with the device, another transaction
        // may be tried sooner, but here the timer is always reset.
        self.last_command = Some(Instant::now());

        res
    }
```