Documentation

Overview

    Package memory provides support for allocating and manipulating memory at a low level.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func Set

    func Set(buf []byte, c byte)

      Set assigns the value c to every element of the slice buf.

      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

          func NewBufferBytes(data []byte) *Buffer

            NewBufferBytes creates a fixed-size buffer from the specified data.

            func NewResizableBuffer

            func NewResizableBuffer(mem Allocator) *Buffer

              NewResizableBuffer creates a mutable, resizable buffer with an Allocator for managing memory.

              func (*Buffer) Buf

              func (b *Buffer) Buf() []byte

                Buf returns the slice of memory allocated by the Buffer, which is adjusted by calling Reserve.

                func (*Buffer) Bytes

                func (b *Buffer) Bytes() []byte

                  Bytes returns a slice of size Len, which is adjusted by calling Resize.

                  func (*Buffer) Cap

                  func (b *Buffer) Cap() int

                    Cap returns the capacity of the buffer.

                    func (*Buffer) Len

                    func (b *Buffer) Len() int

                      Len returns the length of the buffer.

                      func (*Buffer) Mutable

                      func (b *Buffer) Mutable() bool

                        Mutable returns a bool indicating whether the buffer is mutable or not.

                        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) Reserve

                          func (b *Buffer) Reserve(capacity int)

                            Reserve reserves the provided amount of capacity for the buffer.

                            func (*Buffer) Reset

                            func (b *Buffer) Reset(buf []byte)

                              Reset resets the buffer for reuse.

                              func (*Buffer) Resize

                              func (b *Buffer) Resize(newSize int)

                                Resize resizes the buffer to the target size.

                                func (*Buffer) ResizeNoShrink

                                func (b *Buffer) ResizeNoShrink(newSize int)

                                  ResizeNoShrink resizes the buffer to the target size, but will not shrink it.

                                  func (*Buffer) Retain

                                  func (b *Buffer) Retain()

                                    Retain increases the reference count by 1.

                                    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) 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

                                    type TestingT

                                    type TestingT interface {
                                    	Errorf(format string, args ...interface{})
                                    	Helper()
                                    }
                                    GOOS=linux, GOARCH=amd64