polardbxoperator/pkg/util/io/copy.go

16 lines
334 B
Go

package io
import "io"
func CopyBufferN(dst io.Writer, src io.Reader, n int64, buffer []byte) (written int64, err error) {
written, err = io.CopyBuffer(dst, io.LimitReader(src, n), buffer)
if written == n {
return n, nil
}
if written < n && err == nil {
// src stopped early; must have been EOF.
err = io.EOF
}
return
}