func (dd *dictDecoder) writeSlice() []byte {
	return dd.hist[dd.wrPos:]
}
writeSlice returns a slice of the available buffer to write data to.

This invariant will be kept: len(s) <= availWrite()
package flate
type dictDecoder struct {
	hist []byte  
	wrPos int   
	rdPos int   
	full  bool  
}
func (dd *dictDecoder) init(size int, dict []byte) {
	*dd = dictDecoder{hist: dd.hist}
	if cap(dd.hist) < size {
		dd.hist = make([]byte, size)
	}
	dd.hist = dd.hist[:size]
	if len(dict) > len(dd.hist) {
		dict = dict[len(dict)-len(dd.hist):]
	}
	dd.wrPos = copy(dd.hist, dict)
	if dd.wrPos == len(dd.hist) {
		dd.wrPos = 0
		dd.full = true
	}
	dd.rdPos = dd.wrPos
}
func (dd *dictDecoder) histSize() int {
	if dd.full {
		return len(dd.hist)
	}
	return dd.wrPos
}
func (dd *dictDecoder) availRead() int {
	return dd.wrPos - dd.rdPos
}
func (dd *dictDecoder) availWrite() int {
	return len(dd.hist) - dd.wrPos
}