fn delay(&self, delay: Duration) -> TimerFuture {
        // TODO: Make this more efficient and with better overflow checking
        let now = self.inner.lock().clock.now() as u128;
        let delay_ms = core::cmp::min(delay.as_millis(), core::u64::MAX as u128);
        let expiry = core::cmp::min(now + delay_ms, core::u64::MAX as u128) as u64;

        TimerFuture {
            timer: Some(self),
            wait_node: ListNode::new(TimerQueueEntry::new(expiry)),
        }
    }
/// Returns a future that gets fulfilled after the given [`Duration`]
Returns a future that gets fulfilled after the given [`Duration`]
Returns a future that gets fulfilled after the given [ ` Duration ` ]
fn delay(&self, delay: Duration) -> TimerFuture {
        // TODO: Make this more efficient and with better overflow checking
        let now = self.inner.lock().clock.now() as u128;
        let delay_ms = core::cmp::min(delay.as_millis(), core::u64::MAX as u128);
        let expiry = core::cmp::min(now + delay_ms, core::u64::MAX as u128) as u64;
        TimerFuture {
            timer: Some(self),
            wait_node: ListNode::new(TimerQueueEntry::new(expiry)),
        }
    }
fn delay ( & self , delay : Duration ) -> TimerFuture { // TODO: Make this more efficient and with better overflow checking let now = self . inner . lock ( ) . clock . now ( ) as u128 ; let delay_ms = core :: cmp :: min ( delay . as_millis ( ) , core :: u64 :: MAX as u128 ) ; let expiry = core :: cmp :: min ( now + delay_ms , core :: u64 :: MAX as u128 ) as u64 ; TimerFuture { timer : Some ( self ) , wait_node : ListNode :: new ( TimerQueueEntry :: new ( expiry ) ) , } }
Returns a future that gets fulfilled after the given [`Duration`]
Returns a future that gets fulfilled after the given [ ` Duration ` ]
&self
delay
Duration
&self
delay
Duration