Add abridged rwc

This commit is contained in:
9seconds
2018-07-05 09:23:30 +03:00
parent 1894aa7989
commit 4264fdadf8
3 changed files with 128 additions and 14 deletions
+5 -11
View File
@@ -17,20 +17,14 @@ func (b *BufferedReader) BufferedRead(p []byte, callback func() error) (int, err
}
func (b *BufferedReader) flush(p []byte) (int, error) {
sizeToRead := len(p)
if b.Buffer.Len() < sizeToRead {
sizeToRead = b.Buffer.Len()
}
data := b.Buffer.Bytes()
copy(p, data[:sizeToRead])
if sizeToRead == b.Buffer.Len() {
if b.Buffer.Len() < len(p) {
sizeToReturn := b.Buffer.Len()
copy(p, b.Buffer.Bytes())
b.Buffer.Reset()
} else {
b.Buffer = bytes.NewBuffer(data[sizeToRead:])
return sizeToReturn, nil
}
return sizeToRead, nil
return b.Buffer.Read(p)
}
func NewBufferedReader() BufferedReader {