I have something like this in my lorawan code ```rs pub trait Timer: Sized { /// Notification of reaching a time point. type AtFuture<'a>: Future + 'a where Self: 'a; /// Possible result error. type Error: Debug; /// Reset the timer. fn reset(&mut self); /// Set the timer to notify in the future. fn at<'a>(&self, millis: u64) -> Result, Self::Error>; } ``` I wrote(copied) it a good while ago and I am trying to figure out how to make it better. I want to be able to provide a timer implementation but I didn't want to lock it to something like embassy-time. This way of doing it requires type_alias_impl_trait and there should be some way to do this without that but I don't remember how