From b72a4a07c257f394f5a96dff29a4fc862601a41f Mon Sep 17 00:00:00 2001 From: Joe Tsai Date: Wed, 30 Sep 2015 13:35:03 -0700 Subject: encoding/binary: document that Read returns io.EOF iff zero bytes are read Also add a unit test to lock this behavior into the API. Fixes #12016 Change-Id: Ib6ec6e7948f0705f3504ede9143b5dc4e790fc44 Reviewed-on: https://go-review.googlesource.com/15171 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/encoding/binary/binary.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/encoding/binary/binary.go') diff --git a/src/encoding/binary/binary.go b/src/encoding/binary/binary.go index 2bbe07c02f..1c2577b68d 100644 --- a/src/encoding/binary/binary.go +++ b/src/encoding/binary/binary.go @@ -135,6 +135,10 @@ func (bigEndian) GoString() string { return "binary.BigEndian" } // blank (_) field names is skipped; i.e., blank field names // may be used for padding. // When reading into a struct, all non-blank fields must be exported. +// +// The error is EOF only if no bytes were read. +// If an EOF happens after reading some but not all the bytes, +// Read returns ErrUnexpectedEOF. func Read(r io.Reader, order ByteOrder, data interface{}) error { // Fast path for basic types and slices. if n := intDataSize(data); n != 0 { -- cgit v1.3