drone/internal/writer/writeflush.go
2023-09-08 12:52:55 +01:00

34 lines
498 B
Go

package writer
import "io"
type Flusher interface {
Flush()
}
type writeWithFlusher struct {
writer io.Writer
flusher Flusher
}
type WriterFlusher interface {
io.Writer
Flusher
}
func NewWriterFlusher(writer io.Writer, flusher Flusher) WriterFlusher {
return &writeWithFlusher{
writer: writer,
flusher: flusher,
}
}
func (w *writeWithFlusher) Write(p []byte) (int, error) {
n, err := w.writer.Write(p)
return n, err
}
func (w *writeWithFlusher) Flush() {
w.flusher.Flush()
}