TimelyDataflow / timely-dataflow

A modular implementation of timely dataflow in Rust
MIT License
3.25k stars 273 forks source link

Update more core operators #555

Closed frankmcsherry closed 5 months ago

frankmcsherry commented 5 months ago

This PR moves more core operators into core. This includes almost all of the operators of #550, minus some that I think we might want to prune instead (delay and broadcast). There are other operators that I think are worth retaining (partition stands out) but several of the remaining operators should probably be pruned.

This PR has stronger opinions than #550 on how little should be left for Stream (vs StreamCore) and they may need to be walked back once there is an alternate container implementation. I think for the moment there is some type inference ease because there is only one implementor, and various annotations that occur in #550 are not needed here (yet). So, perhaps some more convenience methods / trait re-thinks (ToStream stood out as hard to specify the container type, as it is a trait argument rather than a trait method argument).