github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/synchronization/compression/deflate.go (about)

     1  package compression
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/klauspost/compress/flate"
     7  
     8  	"github.com/mutagen-io/mutagen/pkg/stream"
     9  )
    10  
    11  // compressDeflate implements compression for DEFLATE streams.
    12  func compressDeflate(compressed io.Writer) stream.WriteFlushCloser {
    13  	// Create the compressor. We check for errors, but we don't include them as
    14  	// part of the interface because they can only occur with an invalid
    15  	// compressor configuration (which can't occur when we only use defaults).
    16  	compressor, err := flate.NewWriter(compressed, flate.DefaultCompression)
    17  	if err != nil {
    18  		panic("DEFLATE compressor construction failed")
    19  	}
    20  
    21  	// Success.
    22  	return compressor
    23  }
    24  
    25  // decompressDeflate implements decompression for DEFLATE streams.
    26  func decompressDeflate(compressed io.Reader) io.ReadCloser {
    27  	return flate.NewReader(compressed)
    28  }