func NewWriter(w io.Writer) *Writer {
	z, _ := NewWriterLevelDict(w, DefaultCompression, nil)
	return z
}
NewWriter creates a new Writer.
Writes to the returned Writer are compressed and written to w.

It is the caller's responsibility to call Close on the WriteCloser when done.
Writes may be buffered and not flushed until Close.
package zlib
import (
	"fmt"
	"hash"
	"hash/adler32"
	"io"
	"github.com/klauspost/compress/flate"
)
const (
	NoCompression       = flate.NoCompression
	BestSpeed           = flate.BestSpeed
	BestCompression     = flate.BestCompression
	DefaultCompression  = flate.DefaultCompression
	ConstantCompression = flate.ConstantCompression
)
type Writer struct {
	w           io.Writer
	level       int
	dict        []byte
	compressor  *flate.Writer
	digest      hash.Hash32
	err         error
	scratch     [4]byte
	wroteHeader bool
}