#stream #operator #rx #tokio #future

tokio-stream-ext

使用新操作符的流扩展,这将随着时间的推移而增长

2个版本

0.1.5 2021年8月31日
0.1.4 2021年8月27日

#902 in 异步

Download history 151/week @ 2024-03-13 117/week @ 2024-03-20 125/week @ 2024-03-27 124/week @ 2024-04-03 49/week @ 2024-04-10 37/week @ 2024-04-17 65/week @ 2024-04-24 135/week @ 2024-05-01 120/week @ 2024-05-08 145/week @ 2024-05-15 298/week @ 2024-05-22 176/week @ 2024-05-29 126/week @ 2024-06-05 185/week @ 2024-06-12 286/week @ 2024-06-19 208/week @ 2024-06-26

812 每月下载量

自定义许可证

13KB
309

Tokio StreamExt [WIP]

使用新操作符的流扩展,这将随着时间的推移而增长。

请随意贡献!

待办事项

  • [] 更好的readme
  • [] RustDoc
  • [] 进一步的操作符

操作符

去抖动

在给定的持续时间后稳定去抖动流。

ReceiverStream::new(self.input)
    .debounce(Duration::from_millis(80)),

distinct until changed

过滤事件,类似于最后一个值。

初始值始终被发射。

ReceiverStream::new(self.input)
    .distinct_until_changed(),

Switch Map

流的反应式组合。

switch_map(ReceiverStream::new(keyboard), move |value| {
    if value == 'k' {
        Some(ReceiverStream::new(gamepad))
    } else {
        Some(ReceiverStream::new(joystick))
    }
});

Combine Latest

从所有流中收集一个值并切换到实时模式。从现在开始,将发射所有新的组合。

switch_map(ReceiverStream::new(keyboard), move |value| {
    if value == 'k' {
        Some(ReceiverStream::new(gamepad))
    } else {
        Some(ReceiverStream::new(joystick))
    }
});

依赖关系

~2.7–4MB
~64K SLoC