Documentation ¶
Overview ¶
Package memory provides support for allocating and manipulating memory at a low level.
Index ¶
- func Set(buf []byte, c byte)
- type Allocator
- type Buffer
- func (b *Buffer) Buf() []byte
- func (b *Buffer) Bytes() []byte
- func (b *Buffer) Cap() int
- func (b *Buffer) Len() int
- func (b *Buffer) Mutable() bool
- func (b *Buffer) Release()
- func (b *Buffer) Reserve(capacity int)
- func (b *Buffer) Reset(buf []byte)
- func (b *Buffer) Resize(newSize int)
- func (b *Buffer) ResizeNoShrink(newSize int)
- func (b *Buffer) Retain()
- type CheckedAllocator
- type CheckedAllocatorScope
- type GoAllocator
- type TestingT
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Allocator ¶
type Allocator interface { Allocate(size int) []byte Reallocate(size int, b []byte) []byte Free(b []byte) }
var DefaultAllocator Allocator = NewGoAllocator()
DefaultAllocator is a default implementation of Allocator and can be used anywhere an Allocator is required.
DefaultAllocator is safe to use from multiple goroutines.
type Buffer ¶
type Buffer struct {
// contains filtered or unexported fields
}
Buffer is a wrapper type for a buffer of bytes.
func NewBufferBytes ¶
NewBufferBytes creates a fixed-size buffer from the specified data.
func NewResizableBuffer ¶
NewResizableBuffer creates a mutable, resizable buffer with an Allocator for managing memory.
func (*Buffer) Buf ¶
Buf returns the slice of memory allocated by the Buffer, which is adjusted by calling Reserve.
func (*Buffer) Release ¶
func (b *Buffer) Release()
Release decreases the reference count by 1. When the reference count goes to zero, the memory is freed.
func (*Buffer) ResizeNoShrink ¶
ResizeNoShrink resizes the buffer to the target size, but will not shrink it.
type CheckedAllocator ¶
type CheckedAllocator struct {
// contains filtered or unexported fields
}
func NewCheckedAllocator ¶
func NewCheckedAllocator(mem Allocator) *CheckedAllocator
func (*CheckedAllocator) Allocate ¶
func (a *CheckedAllocator) Allocate(size int) []byte
func (*CheckedAllocator) AssertSize ¶
func (a *CheckedAllocator) AssertSize(t TestingT, sz int)
func (*CheckedAllocator) CurrentAlloc ¶
func (a *CheckedAllocator) CurrentAlloc() int
func (*CheckedAllocator) Free ¶
func (a *CheckedAllocator) Free(b []byte)
func (*CheckedAllocator) Reallocate ¶
func (a *CheckedAllocator) Reallocate(size int, b []byte) []byte
type CheckedAllocatorScope ¶
type CheckedAllocatorScope struct {
// contains filtered or unexported fields
}
func NewCheckedAllocatorScope ¶
func NewCheckedAllocatorScope(alloc *CheckedAllocator) *CheckedAllocatorScope
func (*CheckedAllocatorScope) CheckSize ¶
func (c *CheckedAllocatorScope) CheckSize(t TestingT)
type GoAllocator ¶
type GoAllocator struct{}
func NewGoAllocator ¶
func NewGoAllocator() *GoAllocator
func (*GoAllocator) Allocate ¶
func (a *GoAllocator) Allocate(size int) []byte
func (*GoAllocator) Free ¶
func (a *GoAllocator) Free(b []byte)
func (*GoAllocator) Reallocate ¶
func (a *GoAllocator) Reallocate(size int, b []byte) []byte