2个版本
0.1.1 | 2023年1月11日 |
---|---|
0.1.0 | 2022年10月21日 |
#1297 在 异步
20KB
391 行
流操作符
这是为Rust标准Stream收集的selected rxjs操作符。尽管这些操作符来自ReactiveX世界,但我并不试图为Rust重新发明可观察的生态系统。如果你需要这个,你可以使用rxrust。对于这个repom,我只是在尝试提供一套可以用于Stream的流操作符。
支持的操作符
- debounce_time
- distinct_until_changed
- distinct
- pluck:将每个源值映射到其指定的嵌套属性。
- find:发出符合条件的第一项值。
- find_index:发出符合条件的第一项值的索引。
- group_by:根据指定的标准将Observable发出的项目分组,并作为GroupedObservables发出这些分组的项目,每个组一个GroupedObservable。
- pairwise:发出前一个和当前值作为两个元素的数组。
- partition:将源Observable拆分为两个,一个包含满足谓词的值,另一个包含不满足谓词的值。
- sample_time:在周期性时间间隔内采样源Observable,发出自上次采样以来源Observable发出的最新值,除非源自上次采样以来没有发出任何值。
- sequence_equal:确定两个Observable是否发出相同的项目序列。
- throttle_time:从源Observable发出一个值,然后忽略后续源值一段时间,这段时间由另一个Observable确定,然后重复此过程。
tokio-stream支持的操作符
- every:见 tokio-stream::StreamExt::all
- filter:见 tokio-stream filter
- map:见 tokio-stream map
- reduce:见 tokio-stream fold
- concat_with:请参阅 tokio-stream chain
- buffer_time:请参阅 tokio-stream chunks_timeout
- buffer_count:请参阅 tokio-stream chunks_timeout
- merge_with:请参阅 tokio-stream merge
- skip:请参阅 tokio-stream skip
- skip_while:请参阅 tokio-stream skip_while
- take:请参阅 tokio-stream take
- take_while:请参阅 tokio-stream take_while
- timeout:请参阅 tokio-stream timeout
- delay:请参阅 tokio-stream throttle
由 futures 支持的操作符
- count:请参阅 futures::StreamExt::count
- flat_map:请参阅 futures::StreamExt::flat_map
- repeat:请参阅 futures::StreamExt::cycle
- scan:请参阅 futures scan
- zip_with:请参阅 futures zip
使用方法
请参阅每个操作符的测试。
依赖关系
~2.1–3MB
~49K SLoC