[][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)));

pub fn listens_to(&self, event: &Event) -> bool[src]

Returns true if this listener listens to the given Event.

Examples

use event_listener::Event;

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

assert!(listener.listens_to(&event));

pub fn same_event(&self, other: &EventListener) -> bool[src]

Returns true if both listeners listen to the same Event.

Examples

use event_listener::Event;

let event = Event::new();
let listener1 = event.listen();
let listener2 = event.listen();

assert!(listener1.same_event(&listener2));

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 RefUnwindSafe for EventListener[src]

impl Send for EventListener[src]

impl Sync for EventListener[src]

impl UnwindSafe 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<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.