28 lines
539 B
Go
28 lines
539 B
Go
// +build !go1.10
|
|
|
|
package pbufio
|
|
|
|
import "bufio"
|
|
|
|
func writerSize(bw *bufio.Writer) int {
|
|
return bw.Available() + bw.Buffered()
|
|
}
|
|
|
|
// readerSize returns buffer size of the given buffered reader.
|
|
// NOTE: current workaround implementation resets underlying io.Reader.
|
|
func readerSize(br *bufio.Reader) int {
|
|
br.Reset(sizeReader)
|
|
br.ReadByte()
|
|
n := br.Buffered() + 1
|
|
br.Reset(nil)
|
|
return n
|
|
}
|
|
|
|
var sizeReader optimisticReader
|
|
|
|
type optimisticReader struct{}
|
|
|
|
func (optimisticReader) Read(p []byte) (int, error) {
|
|
return len(p), nil
|
|
}
|