Crates.io | reactor_rs |
lib.rs | reactor_rs |
version | 0.0.5 |
source | src |
created_at | 2019-09-25 12:04:14.497879 |
updated_at | 2019-10-08 09:00:47.229369 |
description | reactor-rust is an implementation of the Reactive-Streams. |
homepage | https://github.com/jjeffcaii/reactor-rust |
repository | https://github.com/jjeffcaii/reactor-rust |
max_upload_size | |
id | 167540 |
size | 88,367 |
reactor-rust is an implementation of the Reactive-Streams in Rust. It is under active development. Do not use it in a production environment!
Add reactor_rs = 0.0.3
in your Cargo.toml
.
Here are some basic example codes:
extern crate reactor_rs;
use reactor_rs::mono;
use reactor_rs::prelude::*;
use reactor_rs::schedulers;
use std::{thread, time::Duration};
fn main() {
let result = mono::just(42)
.do_on_success(|n| {
println!(
"Answer to the Ultimate Question of Life, The Universe, and Everything: {}",
n
);
})
.subscribe_on(schedulers::new_thread())
.flatmap(|n| {
// flatmap async and sleep 500ms.
mono::success(move || {
thread::sleep(Duration::from_millis(500));
n * 2
})
.subscribe_on(schedulers::new_thread())
})
.map(|n| n * 2)
.block()
.unwrap()
.unwrap();
println!("now it should be {}: actual={}!", 42 * 4, result);
}