diff options
Diffstat (limited to 'libgo/go/bytes/reader.go')
-rw-r--r-- | libgo/go/bytes/reader.go | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libgo/go/bytes/reader.go b/libgo/go/bytes/reader.go index b89d154..28cfc7a 100644 --- a/libgo/go/bytes/reader.go +++ b/libgo/go/bytes/reader.go @@ -36,9 +36,6 @@ func (r *Reader) Len() int { func (r *Reader) Size() int64 { return int64(len(r.s)) } func (r *Reader) Read(b []byte) (n int, err error) { - if len(b) == 0 { - return 0, nil - } if r.i >= int64(len(r.s)) { return 0, io.EOF } @@ -63,14 +60,14 @@ func (r *Reader) ReadAt(b []byte, off int64) (n int, err error) { return } -func (r *Reader) ReadByte() (b byte, err error) { +func (r *Reader) ReadByte() (byte, error) { r.prevRune = -1 if r.i >= int64(len(r.s)) { return 0, io.EOF } - b = r.s[r.i] + b := r.s[r.i] r.i++ - return + return b, nil } func (r *Reader) UnreadByte() error { @@ -111,11 +108,11 @@ func (r *Reader) Seek(offset int64, whence int) (int64, error) { r.prevRune = -1 var abs int64 switch whence { - case 0: + case io.SeekStart: abs = offset - case 1: - abs = int64(r.i) + offset - case 2: + case io.SeekCurrent: + abs = r.i + offset + case io.SeekEnd: abs = int64(len(r.s)) + offset default: return 0, errors.New("bytes.Reader.Seek: invalid whence") @@ -146,5 +143,8 @@ func (r *Reader) WriteTo(w io.Writer) (n int64, err error) { return } +// Reset resets the Reader to be reading from b. +func (r *Reader) Reset(b []byte) { *r = Reader{b, 0, -1} } + // NewReader returns a new Reader reading from b. func NewReader(b []byte) *Reader { return &Reader{b, 0, -1} } |