2 releases
0.1.5 | Aug 31, 2021 |
---|---|
0.1.4 | Aug 27, 2021 |
#6 in #rx
542 downloads per month
13KB
309 lines
Tokio StreamExt [WIP]
Stream extension with new operators, this will grow over the time.
Feel free to contribute!
Todo
- [] Better readme
- [] RustDoc
- [] Further operators
Operators
Debounce
Debounce a stream until it is sattled over a given duration.
ReceiverStream::new(self.input)
.debounce(Duration::from_millis(80)),
distinct until changed
Filters events, similar to the last value.
The initial value is always emitted.
ReceiverStream::new(self.input)
.distinct_until_changed(),
Switch Map
Reactive composing of streams.
switch_map(ReceiverStream::new(keyboard), move |value| {
if value == 'k' {
Some(ReceiverStream::new(gamepad))
} else {
Some(ReceiverStream::new(joystick))
}
});
Combine Latest
Collects a value from all streams and switch to a live mode. Every new combination will be emitted from now on.
switch_map(ReceiverStream::new(keyboard), move |value| {
if value == 'k' {
Some(ReceiverStream::new(gamepad))
} else {
Some(ReceiverStream::new(joystick))
}
});
Dependencies
~2.7–8MB
~64K SLoC