code: func newBufferWriter(minShrinkSize, maxSize int) *bufferedWriter {
  	w := &bufferedWriter{minShrinkSize: minShrinkSize, maxSize: maxSize}
  	w.bufSize = minShrinkSize
  	// The minSize is the minimum size the buffer can shrink to.
  	// However, if the given max size is smaller than the min
  	// shrink size, use that instead.
  	if maxSize < minShrinkSize {
  		w.bufSize = maxSize
  	}
  	return w
  }
docs: // setSize sets the initial buffer size and keep track of min/max allowed sizes