delay_queue

Struct Delay

Source
pub struct Delay<T> {
    pub value: T,
    /* private fields */
}
Expand description

Wraps a value that should be delayed.

Implements Delayed and Eq. Two Delay objects are equal iff their wrapped values are equal and they are delayed until the same Instant.

§Examples

Basic usage:

use delay_queue::{Delay, Delayed};
use std::time::{Duration, Instant};

let delayed_one_hour = Delay::for_duration(123, Duration::from_secs(3600));
let delayed_now = Delay::until_instant("abc", Instant::now());

assert!(delayed_one_hour.delayed_until() > delayed_now.delayed_until());
assert_eq!(delayed_one_hour.value, 123);

Fields§

§value: T

The value that is delayed.

Implementations§

Source§

impl<T> Delay<T>

Source

pub fn until_instant(value: T, until: Instant) -> Delay<T>

Creates a new Delay<T> holding value and that is delayed until the given Instant.

§Examples

Basic usage:

use delay_queue::Delay;
use std::time::Instant;

let delayed_now = Delay::until_instant("abc", Instant::now());
Source

pub fn for_duration(value: T, duration: Duration) -> Delay<T>

Creates a new Delay<T> holding value and that is delayed until the given Duration has elapsed.

§Examples

Basic usage:

use delay_queue::Delay;
use std::time::Duration;

let delayed_one_hour = Delay::for_duration("abc", Duration::from_secs(3600));

Trait Implementations§

Source§

impl<T: Debug> Debug for Delay<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Default> Default for Delay<T>

Source§

fn default() -> Delay<T>

Creates an expired Delay<T> with a default value.

Source§

impl<T> Delayed for Delay<T>

Source§

fn delayed_until(&self) -> Instant

Returns the Instant until which this value is delayed.
Source§

impl<T: PartialEq> PartialEq for Delay<T>

Source§

fn eq(&self, other: &Delay<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: Eq> Eq for Delay<T>

Source§

impl<T> StructuralPartialEq for Delay<T>

Auto Trait Implementations§

§

impl<T> Freeze for Delay<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Delay<T>
where T: RefUnwindSafe,

§

impl<T> Send for Delay<T>
where T: Send,

§

impl<T> Sync for Delay<T>
where T: Sync,

§

impl<T> Unpin for Delay<T>
where T: Unpin,

§

impl<T> UnwindSafe for Delay<T>
where 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<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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.