Description
*bufio.Scanner and other consumers of io.Reader
interface expect to receive io.EOF
identically when reading to the end of a file/stream.
From the io package:
// EOF is the error returned by Read when no more input is available.
// (Read must return EOF itself, not an error wrapping EOF,
// because callers will test for EOF using ==.)
// Functions should return EOF only to signal a graceful end of input.
// If the EOF occurs unexpectedly in a structured data stream,
// the appropriate error is either [ErrUnexpectedEOF] or some other error
// giving more detail.
var EOF = errors.New("EOF")
We currently wrap EOF
along with any other error when reading from netConn
or msgReader
. Instead, we should return io.EOF
identically to conform with the io.Reader
spec.