Commit 08aab44e authored by Scott Schwartz's avatar Scott Schwartz

Add ReadByte to bytebuffer

R=rsc
APPROVED=rsc
DELTA=24  (24 added, 0 deleted, 0 changed)
OCL=30459
CL=30540
parent efc4088c
...@@ -102,6 +102,17 @@ func (b *ByteBuffer) Read(p []byte) (n int, err os.Error) { ...@@ -102,6 +102,17 @@ func (b *ByteBuffer) Read(p []byte) (n int, err os.Error) {
return n, nil return n, nil
} }
// ReadByte reads and returns the next byte from the buffer.
// If no byte is available, it returns error ErrEOF.
func (b *ByteBuffer) ReadByte() (c byte, err os.Error) {
if b.off >= len(b.buf) {
return 0, ErrEOF;
}
c = b.buf[b.off];
b.off++;
return c, nil;
}
// NewByteBufferFromArray creates and initializes a new ByteBuffer // NewByteBufferFromArray creates and initializes a new ByteBuffer
// with buf as its initial contents. // with buf as its initial contents.
func NewByteBufferFromArray(buf []byte) *ByteBuffer { func NewByteBufferFromArray(buf []byte) *ByteBuffer {
......
...@@ -118,6 +118,19 @@ func TestBasicOperations(t *testing.T) { ...@@ -118,6 +118,19 @@ func TestBasicOperations(t *testing.T) {
empty(t, "TestBasicOperations (9)", &buf, string(data[0 : 20]), make([]byte, 5)); empty(t, "TestBasicOperations (9)", &buf, string(data[0 : 20]), make([]byte, 5));
empty(t, "TestBasicOperations (10)", &buf, "", make([]byte, 100)); empty(t, "TestBasicOperations (10)", &buf, "", make([]byte, 100));
buf.WriteByte(data[1]);
c, err := buf.ReadByte();
if err != nil {
t.Errorf("ReadByte unexpected eof\n");
}
if c != data[1] {
t.Errorf("ReadByte wrong value c=%v\n", c);
}
c, err = buf.ReadByte();
if err == nil {
t.Errorf("ReadByte unexpected not eof\n");
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment