| Crates.io | rust_observable |
| lib.rs | rust_observable |
| version | 0.2.1 |
| created_at | 2023-08-04 21:27:26.155918+00 |
| updated_at | 2023-08-05 13:15:47.904417+00 |
| description | Push-based data source Observable type |
| homepage | |
| repository | https://github.com/hydroper/rust_observable |
| max_upload_size | |
| id | 935649 |
| size | 17,875 |
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:
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);