RxRs - Reactive Extensions for Rust


version

🌱 WIP: rewriting everything ...

```rust #[test] fn ops() { let timer: impl Observable> = Timer::new(Duration::from_millis(10), NewThreadScheduler::new(Arc::new(DefaultThreadFac)));

    let (out, out1, out3) = Arc::new(Mutex::new(String::new())).clones();

    timer.filter(|v: &_| v % 2 == 0 ).take(5).map(|v| format!("{}", v)).sub(
        move |v: String| { out.lock().unwrap().push_str(&*v); },
        move |e: Option<&_>| out3.lock().unwrap().push_str("ok")
    );

    ::std::thread::sleep_ms(1000);

    assert_eq!(out1.lock().unwrap().as_str(), "02468ok");
}

```

```bash src ├── act.rs ├── acthelpers.rs ├── fac │   ├── mod.rs │   ├── of.rs │   └── timer.rs ├── lib.rs ├── observables.rs ├── op │   ├── filter.rs │   ├── map.rs │   ├── mod.rs │   ├── take.rs │   └── until.rs ├── scheduler │   ├── currentthreadscheduler.rs │   ├── eventloopscheduler.rs │   ├── mod.rs │   └── newthreadscheduler.rs ├── subject │   ├── behaviorsubject.rs │   ├── mod.rs │   └── subject.rs ├── sync │   ├── mod.rs │   └── respinlock.rs ├── unsub.rs └── util ├── alias.rs ├── anysendsync.rs ├── by.rs ├── clones.rs ├── mod.rs └── yesno.rs

```