9 个版本

0.2.0-beta32018年11月20日
0.2.0-beta22018年11月3日
0.2.0-beta02018年10月31日
0.1.0-alpha42018年10月30日
0.1.0-alpha12018年3月3日

#16 in #ready


用于 rx_gtk

MIT 许可协议

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


无运行时依赖