Implement new merging and repeating transforms #703
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merging transforms take multiple producer inputs and merge them into a tuple that can be passed for processing.
Join
emits an output whenever any input is updated, as long as all inputs are below max_age.Zip
, on the other hand, emits an output once all inputs have been updated, also observing the age of individual inputs.Repeating transforms keep emitting the input value at given intervals.
Repeat
emits whenever an input is received and keeps repeating the value everyinterval
milliseconds.RepeatStopping
works likeRepeat
but includes amax_age
. If no input is received withinmax_age
milliseconds, it stops repeating.RepeatExpring
works likeRepeatStopping
, but instead of stopping altogether, it continues repeatingexpired_value
oncemax_age
is reached. And finally,RepeatConstantRate
works likeRepeatExpiring
, but always emits at regular intervals, regardless of when new input as been received.