1
0
mirror of https://github.com/golang/go synced 2024-11-18 11:04:42 -07:00

Add ReadByte to bytebuffer

R=rsc
APPROVED=rsc
DELTA=24  (24 added, 0 deleted, 0 changed)
OCL=30459
CL=30540
This commit is contained in:
Scott Schwartz 2009-06-19 16:29:30 -07:00
parent efc4088ccd
commit 08aab44e48
2 changed files with 24 additions and 0 deletions

View File

@ -102,6 +102,17 @@ func (b *ByteBuffer) Read(p []byte) (n int, err os.Error) {
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
// with buf as its initial contents.
func NewByteBufferFromArray(buf []byte) *ByteBuffer {

View File

@ -118,6 +118,19 @@ func TestBasicOperations(t *testing.T) {
empty(t, "TestBasicOperations (9)", &buf, string(data[0 : 20]), make([]byte, 5));
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");
}
}
}