[][src]Struct event_listener::EventListener

pub struct EventListener { /* fields omitted */ }

A guard waiting for a notification from an Event.

There are two ways for a listener to wait for a notification:

  1. In an asynchronous manner using .await.
  2. In a blocking manner by calling EventListener::wait() on it.

If a notified listener is dropped without receiving a notification, dropping will notify another active listener. Whether one additional listener will be notified depends on what kind of notification was delivered.

Implementations

impl EventListener[src]

pub fn wait(self)[src]

Blocks until a notification is received.

Examples

use event_listener::Event;

let event = Event::new();
let listener = event.listen();

// Notify `listener`.
event.notify(1);

// Receive the notification.
listener.wait();

pub fn wait_timeout(self, timeout: Duration) -> bool[src]

Blocks until a notification is received or a timeout is reached.

Returns true if a notification was received.

Examples

use std::time::Duration;
use event_listener::Event;

let event = Event::new();
let listener = event.listen();

// There are no notification so this times out.
assert!(!listener.wait_timeout(Duration::from_secs(1)));

pub fn wait_deadline(self, deadline: Instant) -> bool[src]

Blocks until a notification is received or a deadline is reached.

Returns true if a notification was received.

Examples

use std::time::{Duration, Instant};
use event_listener::Event;

let event = Event::new();
let listener = event.listen();

// There are no notification so this times out.
assert!(!listener.wait_deadline(Instant::now() + Duration::from_secs(1)));

Trait Implementations

impl Debug for EventListener[src]

impl Drop for EventListener[src]

impl Future for EventListener[src]

type Output = ()

The type of value produced on completion.

impl Send for EventListener[src]

impl Sync for EventListener[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<F> IntoFuture for F where
    F: Future
[src]

type Output = <F as Future>::Output

🔬 This is a nightly-only experimental API. (into_future)

The output that the future will produce on completion.

type Future = F

🔬 This is a nightly-only experimental API. (into_future)

Which kind of future are we turning this into?

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.