package multibuf import ( "io" "gitlab.com/tozd/go/errors" ) type WriteCloser struct { writers []io.WriteCloser io.Writer } func NewWriteCloser(writers ...io.WriteCloser) *WriteCloser { ws := make([]io.Writer, len(writers)) for i, w := range writers { ws[i] = io.Writer(w) } return &WriteCloser{ writers: writers, Writer: io.MultiWriter(ws...), } } func (mw *WriteCloser) Close() error { var lastErr error for _, w := range mw.writers { err := w.Close() if err != nil { lastErr = err } } return errors.WithStack(lastErr) }