promiser

Crates.iopromiser
lib.rspromiser
version0.0.5
sourcesrc
created_at2017-04-15 17:50:39.151851
updated_at2017-04-15 17:50:39.151851
descriptionpromise sync primitive
homepage
repositoryhttps://github.com/viperscape/rust-promise
max_upload_size
id10719
size10,207
Chris Gill (viperscape)

documentation

README

rust-promise

for now use the git dependency in your Cargo.toml:

[dependencies.promise]

git = "https://github.com/viperscape/rust-promise.git"

example usage:

extern crate promise;
use promise::Promise;
use std::rand;

fn main () {
    let (pt,pr) = Promise::new();
    let bd = vec![rand::random::<u64>();1000];
    pt.deliver(bd);
    let v = pr.with(|x| x[999]); //copy value, returns inside of Result
    println!("{:?}",v); //Ok(3654177790282180513)
}

benchmarks

These represent some basic benchmarking, real speeds could vary significantly.

test latch::tests::bench_latch            ... bench:        45 ns/iter (+/- 0)
test promise::tests::bench_channel_linear ... bench:       758 ns/iter (+/- 7)
test promise::tests::bench_promise_linear ... bench:         1 ns/iter (+/- 0)
Commit count: 36

cargo fmt