<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 } ```