Proof of concept for extra streaming support #18
+107
−5
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.
I have an implementation for
IO:Compress::ZstdandIO:Uncompress::Zstdin progress, usingCompress-Zstdto handle the low-level compression/uncompression, but there are a couple of things I’m blocked on.The exiting interface for streaming uncompression will either uncompress successfully or croak on error. I need a way of knowing when a frame has been completely uncompressed. Without that I have no way of telling if the compressed data stream has been truncated. I have a generic test harness that all the IO::Compress/Uncompress modules share. One set of tests checks that I can detect truncated content.
This change is a proof-of-concept that add the following
statusmethod for the streaming interface.This method returns the actual value returned from the streaming API calls.
isEndFramemethod.This is the key method I need
isError&getErrorNamefunctions from the ZSTD api.These make error reporting easier for me.
With the above changes I can get
IO:Compress::ZstdandIO:Uncompress::Zstdto build & pass all tests.