rust-promise Build Status

Documentation

Examples

Basics

```rust extern crate promise;

use promise::Future;

fn main() { let f = Future::fromfn(proc() "hello world!"); f.onsuccess(proc(value){ println!("{}", value) }); println!("end of main"); } ```

Composing Futures

```rust extern crate promise;

use promise::Future; use std::time::duration::Duration;

fn main() { let hello = Future::delay(proc() "hello", Duration::seconds(3)); let world = Future::fromfn(proc() "world"); let hw = Future::all(vec![hello, world]); hw.map(proc(f) format!("{} {}!", f[0], f[1])) .onsuccess(proc(value){ println!("{}", value) }); println!("end of main"); } ```

```rust extern crate promise;

use promise::Future; use std::time::duration::Duration;

fn main() { let timeout = Future::delay(proc() Err("timeout"), Duration::seconds(2)); let f = Future::delay(proc() Ok("hello world!"), Duration::seconds(3)); let hw = Future::firstof(vec![f, timeout]); hw.onsuccess(proc(value){ println!("{}", value) }); println!("end of main"); } ```