Implement pull-based Read trait for both compressing and decompressing.
Read
A decoder that decompress input data from another Read.
An encoder that compress input data from another Read.