Struct await::examples::promise::Promise [] [src]

pub struct Promise<T> {
    // some fields omitted
}

Used to fulfill a promise (in other words, complete the Future)

This can only be owned by one thread, but it can be clone'd to send to other threads.

XXX: this could use mio for non-"thread"-blocking

TODO: should Promise be a trait?

Methods

impl<T> Promise<T>

fn set(self, value: T) -> Option<T>

Fullfill a promise

A promise can only be used once

Returns

None if the promise was delivered. If the Future is dropped before the promise is fulfilled, this will return Some(value)

impl<T, E> Promise<Result<T, E>>

fn success(self, value: T) -> Option<T>

Deliver a successful result

Convenience wrapper around self.set for the Ok() case

fn fail_with(self, err: E) -> Option<E>

Deliver a failure

Convenience wrapper around self.set for the Err() case

Trait Implementations

Derived Implementations

impl<T: Clone> Clone for Promise<T>

fn clone(&self) -> Promise<T>

1.0.0fn clone_from(&mut self, source: &Self)