Reduce amount of copying/cloning within the transformation from StreamerMessage
to codec::Block
#10
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.
We were passing the top element as a reference as well as a bunch of other inner structures. This was causing unnecessary cloning of elements because we didn't had ownership of the top-level structure. We actually "own" the
StreamerMessage
which is dropped right after the transformation so it makes more sense to move it into the transformer and move as much value straight inside the proto instead of deeply cloning.So, everything is now "moved" which means much less data need to be copied/created and mostly everything can be simply be "moved" in the right location. There was also useless usage of
clone
here and there which was doubly not required.