9 个版本
0.2.0-beta3 | 2018年11月20日 |
---|---|
0.2.0-beta2 | 2018年11月3日 |
0.2.0-beta0 | 2018年10月31日 |
0.1.0-alpha4 | 2018年10月30日 |
0.1.0-alpha1 | 2018年3月3日 |
#16 in #ready
用于 rx_gtk
345KB
3K SLoC
RxRs - Reactive Extensions for Rust
开发中:rxrs 正在积极开发中,尚未准备好用于生产
use rxrs::*;
#[test]
pub fn greet()
{
let output = RefCell::new(String::new());
let subj = Rc::new(Subject::<NO, i32>::new());
let evens: impl Observable<NO, Val<String>> = subj.clone()
.filter(|v:&_| v%2 == 0 )
.take(4)
.map(|v:&_| format!("*{}", v));
evens.subscribe(
|v: String| output.borrow_mut().push_str(&v),
|e| output.borrow_mut().push_str("ok")
);
for i in 0..10 {
subj.next(i);
}
assert_eq!("*0*2*4*6ok", &*output.borrow());
}
src
├── observable.rs
├── observer.rs
├── error.rs
├── by.rs
├── unsub.rs
├── lib.rs
├── fac
│ ├── iter.rs
│ ├── merge.rs
│ ├── mod.rs
│ ├── of.rs
│ └── timer.rs
├── op
│ ├── filter.rs
│ ├── map.rs
│ ├── merge.rs
│ ├── mod.rs
│ ├── skip.rs
│ ├── start.rs
│ ├── take.rs
│ └── until.rs
├── scheduler
│ ├── current_thread_scheduler.rs
│ ├── event_loop_scheduler.rs
│ ├── mod.rs
│ └── new_thread_scheduler.rs
├── subject
│ ├── behavior_subject.rs
│ ├── mod.rs
│ └── subject.rs
├── sync
│ ├── act.rs
│ ├── any_send_sync.rs
│ ├── mod.rs
│ ├── re_spin_lock.rs
│ ├── ss_mark.rs
│ └── yesno.rs
└── util
├── clones.rs
└── mod.rs