Optimize network types IO (#286)

This commit is contained in:
Launium
2024-09-08 01:53:30 +08:00
committed by GitHub
parent a5fbf35088
commit 9a1f543137
3 changed files with 79 additions and 48 deletions

View File

@ -273,3 +273,22 @@ func (t Tuple) ReadFrom(r io.Reader) (n int64, err error) {
}
return
}
func CreateByteReader(reader io.Reader) io.ByteReader {
if byteReader, isByteReader := reader.(io.ByteReader); isByteReader {
return byteReader
}
return byteReaderWrapper{reader}
}
type byteReaderWrapper struct {
io.Reader
}
var _ io.ByteReader = byteReaderWrapper{}
func (r byteReaderWrapper) ReadByte() (byte, error) {
var buf [1]byte
_, err := io.ReadFull(r.Reader, buf[:])
return buf[0], err
}