code: func NewWriteFlusher(w io.Writer) *WriteFlusher {
  	var fl flusher
  	if f, ok := w.(flusher); ok {
  		fl = f
  	} else {
  		fl = &NopFlusher{}
  	}
  	return &WriteFlusher{w: w, flusher: fl, closed: make(chan struct{}), flushed: make(chan struct{})}
  }
docs: // NewWriteFlusher returns a new WriteFlusher.