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.
The main goals of having context is to cancel the process as soon as we can when the context is canceled or the deadline is exceeded to save resources. This PR should be sufficient to do the logic without altering existing code that much, since it's only one layer above it. Things to note, on Encode for example, when the context is canceled, some bytes written to the
io.Writer
might be truncated, but it will end with a proper message since we try to stop the process per a single message encoding. It's up to the user to clean up the underlying writer as necessary. If user does not want the file to be truncated, they need to useEncode()
instead.close #72