Files
engine/util/buffer.go
2022-02-02 10:39:39 +08:00

31 lines
529 B
Go

package util
type Buffer []byte
func (b *Buffer) Write(a []byte) (n int, err error) {
*b = append(*b, a...)
return len(a), nil
}
func (b Buffer) Len() int {
return len(b)
}
func (b Buffer) Cap() int {
return cap(b)
}
func (b Buffer) SubBuf(start int, length int) Buffer {
return b[start : start+length]
}
func (b *Buffer) Malloc(count int) Buffer {
l := b.Len()
if l+count > b.Cap() {
n := make(Buffer, l+count)
copy(n, *b)
*b = n
}
return b.SubBuf(l, count)
}
func (b *Buffer) Reset() {
*b = b.SubBuf(0, 0)
}