Skip to main content

Timer

Struct Timer 

Source
pub struct Timer<T> { /* private fields */ }
Expand description

A timer.

Typical usage goes like this:

  • register the timer with a mio::Poll.
  • set a timeout, by calling Timer::set_timeout. Here you provide some state to be associated with this timeout.
  • poll the Poll, to learn when a timeout has occurred.
  • retrieve state associated with the timeout by calling Timer::poll.

You can omit use of the Poll altogether, if you like, and just poll the Timer directly.

Implementations§

Source§

impl<T> Timer<T>

Source

pub fn set_timeout(&mut self, delay_from_now: Duration, state: T) -> Timeout

Set a timeout.

When the timeout occurs, the given state becomes available via poll.

Source

pub fn set_timeout_from( &mut self, now: Instant, delay_from_now: Duration, state: T, ) -> Timeout

Self::set_timeout, counting delay_from_now from the caller’s now instead of re-reading the clock.

A caller that already holds the instant its deadline was computed against uses this so the entry lands on the grid point that deadline maps to, however long ago now was read — and a test can place an entry at an exact instant.

Source

pub fn reset_timeout( &mut self, timeout: &Timeout, delay_from_now: Duration, ) -> Option<Timeout>

Resets a timeout.

Source

pub fn cancel_timeout(&mut self, timeout: &Timeout) -> Option<T>

Cancel a timeout.

If the timeout has not yet occurred, the return value holds the associated state.

Source

pub fn poll(&mut self) -> Option<T>

Poll for an expired timer.

The return value holds the state associated with the first expired timer, if any.

Source

pub fn poll_at(&mut self, now: Instant) -> Option<T>

Self::poll as of now rather than the current instant, so a test can drive the wheel from a simulated clock.

Source

pub fn next_poll_date(&self) -> Option<Instant>

Trait Implementations§

Source§

impl<T> Default for Timer<T>

Source§

fn default() -> Timer<T>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Timer<T>
where Slab<Entry<T>>: Freeze,

§

impl<T> RefUnwindSafe for Timer<T>
where Slab<Entry<T>>: RefUnwindSafe,

§

impl<T> Send for Timer<T>
where Slab<Entry<T>>: Send,

§

impl<T> Sync for Timer<T>
where Slab<Entry<T>>: Sync,

§

impl<T> Unpin for Timer<T>
where Slab<Entry<T>>: Unpin,

§

impl<T> UnsafeUnpin for Timer<T>
where Slab<Entry<T>>: UnsafeUnpin,

§

impl<T> UnwindSafe for Timer<T>
where Slab<Entry<T>>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.