@@ -217,6 +217,14 @@ pub fn forward(&mut self, now: Instant, duration: Delta) -> u64 {
// timer callback context - fulfilling the requirements of the C API.
unsafe { Self::raw_forward(self, now, duration) }
}
+
+ /// Forward the time expiry so it expires at `duration` after the current time.
+ ///
+ /// This is a variant of [`forward`](Self::forward) that uses a duration after the current time
+ /// of the [`HrTimerClockBase`] for this [`HrTimerCallbackContext`].
+ pub fn forward_now(&mut self, duration: Delta) -> u64 {
+ self.forward(self.clock_base().time(), duration)
+ }
}
/// The timer base for a specific clock.
@@ -612,6 +620,14 @@ pub fn forward(&mut self, now: Instant, duration: Delta) -> u64 {
// - By our type invariants, `self.0` always points to a valid `HrTimer<T>`
unsafe { HrTimer::<T>::raw_forward(self.0.as_ptr(), now, duration) }
}
+
+ /// Forward the time expiry so it expires after now.
+ ///
+ /// This is a variant of [`HrTimerCallbackContext::forward()`] that uses an interval after the
+ /// current time of the [`HrTimerClockBase`] for this [`HrTimerCallbackContext`].
+ pub fn forward_now(&mut self, duration: Delta) -> u64 {
+ self.forward(self.clock_base().time(), duration)
+ }
}
/// Use to implement the [`HasHrTimer<T>`] trait.