first commit
This commit is contained in:
47
buffer.go
Normal file
47
buffer.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package bin
|
||||
|
||||
type Buffer struct {
|
||||
arr []byte
|
||||
}
|
||||
|
||||
func NewBuffer(arr []byte) *Buffer {
|
||||
s := new(Buffer)
|
||||
s.arr = arr
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *Buffer) WriteByte(b byte) (err error) {
|
||||
s.arr = append(s.arr, b)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Buffer) Write(data []byte) (int, error) {
|
||||
s.arr = append(s.arr, data...)
|
||||
return len(data), nil
|
||||
}
|
||||
|
||||
func (s *Buffer) ByteAt(idx int) byte {
|
||||
return s.arr[idx]
|
||||
}
|
||||
|
||||
func (s *Buffer) WriteByteAt(b byte, idx int) {
|
||||
s.arr[idx] = b
|
||||
}
|
||||
|
||||
func (s *Buffer) Len() int {
|
||||
return len(s.arr)
|
||||
}
|
||||
|
||||
func (s *Buffer) Bytes() []byte {
|
||||
return s.arr[:]
|
||||
}
|
||||
|
||||
func (s *Buffer) CopyBytes() []byte {
|
||||
dst := make([]byte, len(s.arr))
|
||||
copy(dst, s.arr)
|
||||
return dst
|
||||
}
|
||||
|
||||
func (s *Buffer) Reset() {
|
||||
s.arr = s.arr[:0]
|
||||
}
|
||||
Reference in New Issue
Block a user