module HTTPX::Plugins::Compression::Deflate::Encoder

def deflate(raw, buffer, chunk_size:)

def deflate(raw, buffer, chunk_size:)
  deflater = Zlib::Deflate.new(Zlib::BEST_COMPRESSION,
                               Zlib::MAX_WBITS,
                               Zlib::MAX_MEM_LEVEL,
                               Zlib::HUFFMAN_ONLY)
  while (chunk = raw.read(chunk_size))
    compressed = deflater.deflate(chunk)
    buffer << compressed
    yield compressed if block_given?
  end
  last = deflater.finish
  buffer << last
  yield last if block_given?
ensure
  deflater.close
end