• Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
    Rust
  • Created over 6 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reactive Extensions for Rust


RxRs - Reactive Extensions for Rust


WIP: rxrs is under heavy development & not ready for production

    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
├── by.rs
├── error.rs
├── fac
│   ├── iter.rs
│   ├── merge.rs
│   ├── mod.rs
│   ├── of.rs
│   └── timer.rs
├── lib.rs
├── observable.rs
├── observer.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
│   ├── re_spin_mutex.rs
│   ├── recur_cell.rs
│   ├── ss_mark.rs
│   └── yesno.rs
├── unsub.rs
└── util
    ├── clones.rs
    └── mod.rs