reactor_rs

Crates.ioreactor_rs
lib.rsreactor_rs
version0.0.5
sourcesrc
created_at2019-09-25 12:04:14.497879
updated_at2019-10-08 09:00:47.229369
descriptionreactor-rust is an implementation of the Reactive-Streams.
homepagehttps://github.com/jjeffcaii/reactor-rust
repositoryhttps://github.com/jjeffcaii/reactor-rust
max_upload_size
id167540
size88,367
Jeffsky (jjeffcaii)

documentation

README

reactor-rust

Crates.io Crates.io Build Status License GitHub Release

reactor-rust is an implementation of the Reactive-Streams in Rust. It is under active development. Do not use it in a production environment!

Install

Add reactor_rs = 0.0.3 in your Cargo.toml.

Example

Here are some basic example codes:

Mono

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);
}
Commit count: 26

cargo fmt