Crates.io | rust_observable |
lib.rs | rust_observable |
version | 0.2.1 |
source | src |
created_at | 2023-08-04 21:27:26.155918 |
updated_at | 2023-08-05 13:15:47.904417 |
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);