another_rxrust/utils/
ready_set_go.rs1use crate::prelude::*;
2
3pub fn ready_set_go<'a, F, Item>(
4 f: F,
5 o: Observable<'a, Item>,
6) -> Observable<'a, Item>
7where
8 F: Fn() + Send + Sync + 'a,
9 Item: Clone + Send + Sync,
10{
11 Observable::create(move |s| {
12 o.inner_subscribe(s);
13 f();
14 })
15}
16#[cfg(test)]
17mod test {
18 use crate::prelude::*;
19
20 #[test]
21 fn basic() {
22 let s = subjects::Subject::<i32>::new();
23 let s_f = s.clone();
24 utils::ready_set_go(
25 move || {
26 s_f.next(1);
27 s_f.next(2);
28 s_f.complete();
29 },
30 s.observable(),
31 )
32 .subscribe(
33 print_next_fmt!("{}"),
34 print_error!(),
35 print_complete!(),
36 );
37 }
38}