5 个版本
0.2.1 | 2023 年 8 月 5 日 |
---|---|
0.2.0 | 2023 年 8 月 5 日 |
0.1.2 | 2023 年 8 月 5 日 |
0.1.1 | 2023 年 8 月 4 日 |
0.1.0 | 2023 年 8 月 4 日 |
#17 in #subscribe
19KB
380 代码行(不包括注释)
Observable
提供了一个用于模型化基于推送的数据源的 Observable
类型。它始终使用原子引用,允许它在其他线程中传递。它基于 TC39 建议。
observer!
宏构建了一个不可见的 Observer
。您也可以根据需要实现自己的观察者类型。
要求
- Rust 标准库 (
std
)。 - 夜间频道。
use rust_observable::*;
fn my_observable() -> Observable<String> {
Observable::new(|observer| {
// send initial data
observer.next("initial value".into());
// return a cleanup function that runs on unsubscribe.
|| {
println!("cleanup on unsubscribe");
}
})
}
let _ = my_observable()
.subscribe(observer! {
next: |value| {},
error: |error| {},
complete: || {},
start: |subscription| {},
})
.unsubscribe();
// you can also use functional methods such as `filter` and `map`.
let _ = my_observable()
.filter(|value| true)
.map(|value| value);
依赖项
~280–730KB
~18K SLoC