1 unstable release
0.1.0 | Aug 4, 2023 |
---|
#11 in #constructs
25 downloads per month
Used in rust_observable
4KB
57 lines
Observable
Provides an Observable
type used to model push-based data sources. It always uses atomic references, allowing it to be passed to other threads. It is based on a TC39 proposal.
The observer!
macro constructs an opaque Observer
. You can also implement your own observer type if desired.
Requirements:
- The Rust standard library (
std
). - Nightly channel.
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);
Dependencies
~335–790KB
~19K SLoC