reactor_rs 0.0.3

reactor-rust is an implementation of the Reactive-Streams.
Documentation
# reactor-rust

[![Crates.io](https://img.shields.io/crates/v/reactor_rs)](https://crates.io/crates/reactor_rs)
[![Crates.io](https://img.shields.io/crates/d/reactor_rs)](https://crates.io/crates/reactor_rs)
[![Build Status](https://travis-ci.com/jjeffcaii/reactor-rust.svg?branch=master)](https://travis-ci.com/jjeffcaii/reactor-rust)
[![License](https://img.shields.io/github/license/jjeffcaii/reactor-rust.svg)](https://github.com/jjeffcaii/reactor-rust/blob/master/LICENSE)
[![GitHub Release](https://img.shields.io/github/release-pre/jjeffcaii/reactor-rust.svg)](https://github.com/jjeffcaii/reactor-rust/releases)

> reactor-rust is an implementation of the [Reactive-Streams]https://www.reactive-streams.org 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

```rust
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);
}
```