code: func (w *BroadcastWriter) Write(p []byte) (n int, err error) {
  	for _, writer := range w.writers {
  		n, err = writer.Write(p)
  		if err != nil {
  			return
  		}
  		if n != len(p) {
  			err = io.ErrShortWrite
  			return
  		}
  	}
  	return len(p), nil
  }
docs: // Write multiplexes the input to multiple sub-writers. If any of the write
  // fails, it won't attempt to write to other writers