RxRs - Reactive Extensions for Rust
```rust
#[test]
fn ops()
{
let timer: impl Observable
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
```