|
|
@@ -48,23 +48,18 @@ var (
|
|
|
|
|
|
// BufferedWriter is a Writer with internal buffer.
|
|
|
type BufferedWriter struct {
|
|
|
- writer Writer
|
|
|
- legacyWriter io.Writer
|
|
|
- buffer *Buffer
|
|
|
- buffered bool
|
|
|
+ writer Writer
|
|
|
+ buffer *Buffer
|
|
|
+ buffered bool
|
|
|
}
|
|
|
|
|
|
// NewBufferedWriter creates a new BufferedWriter.
|
|
|
func NewBufferedWriter(writer Writer) *BufferedWriter {
|
|
|
- w := &BufferedWriter{
|
|
|
+ return &BufferedWriter{
|
|
|
writer: writer,
|
|
|
buffer: New(),
|
|
|
buffered: true,
|
|
|
}
|
|
|
- if lw, ok := writer.(io.Writer); ok {
|
|
|
- w.legacyWriter = lw
|
|
|
- }
|
|
|
- return w
|
|
|
}
|
|
|
|
|
|
func (w *BufferedWriter) WriteByte(c byte) error {
|
|
|
@@ -74,8 +69,10 @@ func (w *BufferedWriter) WriteByte(c byte) error {
|
|
|
|
|
|
// Write implements io.Writer.
|
|
|
func (w *BufferedWriter) Write(b []byte) (int, error) {
|
|
|
- if !w.buffered && w.legacyWriter != nil {
|
|
|
- return w.legacyWriter.Write(b)
|
|
|
+ if !w.buffered {
|
|
|
+ if writer, ok := w.writer.(io.Writer); ok {
|
|
|
+ return writer.Write(b)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
totalBytes := 0
|