Help us shape the future of Go! Take the 2026 Go Developer Survey

wrappers

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: BSD-3-Clause Imports: 5 Imported by: 51

Documentation

Overview

Package wrappers provides common wrapper types and utilities.

Index

Constants

View Source
const (
	// ByteLen is the number of bytes per byte
	ByteLen = 1
	// ShortLen is the number of bytes per short
	ShortLen = 2
	// IntLen is the number of bytes per int
	IntLen = 4
	// LongLen is the number of bytes per long
	LongLen = 8
	// BoolLen is the number of bytes per bool
	BoolLen = 1
	// IPLen is the number of bytes per IP
	IPLen = 16 + ShortLen
)
View Source
const (
	MaxStringLen = math.MaxUint16
)

Variables

View Source
var (
	ErrInsufficientLength = errors.New("packer has insufficient length for input")
)

Functions

func StringLen

func StringLen(str string) int

StringLen returns the packed length of a string

Types

type Closer

type Closer struct {
	// contains filtered or unexported fields
}

Closer is a nice utility for closing a group of objects while reporting an error if one occurs.

func (*Closer) Add

func (c *Closer) Add(closer io.Closer)

Add a new object to be closed.

func (*Closer) Close

func (c *Closer) Close() error

Close closes each of the closers add to [c] and returns the first error that occurs or nil if no error occurs.

type Errs

type Errs struct {
	Err error
}

Errs collects errors during a series of operations.

func (*Errs) Add

func (errs *Errs) Add(errors ...error)

Add records the first non-nil error.

func (*Errs) Errored

func (errs *Errs) Errored() bool

Errored returns true if an error has been recorded.

type Packer

type Packer struct {
	Errs

	// The largest allowed size of expanding the byte array
	MaxSize int
	// The current byte array
	Bytes []byte
	// The offset that is being written to in the byte array
	Offset int
}

Packer packs and unpacks a byte array from/to standard values

func (*Packer) PackBool

func (p *Packer) PackBool(b bool)

PackBool packs a bool into the byte array

func (*Packer) PackByte

func (p *Packer) PackByte(val byte)

PackByte appends a byte to the byte array

func (*Packer) PackBytes

func (p *Packer) PackBytes(bytes []byte)

PackBytes appends a byte slice to the byte array

func (*Packer) PackFixedBytes

func (p *Packer) PackFixedBytes(bytes []byte)

PackFixedBytes appends a byte slice with no length descriptor to the byte array

func (*Packer) PackInt

func (p *Packer) PackInt(val uint32)

PackInt appends an int to the byte array

func (*Packer) PackLong

func (p *Packer) PackLong(val uint64)

PackLong appends a long to the byte array

func (*Packer) PackShort

func (p *Packer) PackShort(val uint16)

PackShort appends a short to the byte array

func (*Packer) PackStr

func (p *Packer) PackStr(str string)

PackStr appends a string to the byte array

func (*Packer) UnpackBool

func (p *Packer) UnpackBool() bool

UnpackBool unpacks a bool from the byte array

func (*Packer) UnpackByte

func (p *Packer) UnpackByte() byte

UnpackByte unpacks a byte from the byte array

func (*Packer) UnpackBytes

func (p *Packer) UnpackBytes() []byte

UnpackBytes unpacks a byte slice from the byte array

func (*Packer) UnpackFixedBytes

func (p *Packer) UnpackFixedBytes(size int) []byte

UnpackFixedBytes unpacks a byte slice with no length descriptor from the byte array

func (*Packer) UnpackInt

func (p *Packer) UnpackInt() uint32

UnpackInt unpacks an int from the byte array

func (*Packer) UnpackLimitedBytes

func (p *Packer) UnpackLimitedBytes(limit uint32) []byte

UnpackLimitedBytes unpacks a byte slice. If the size of the slice is greater than limit, adds errOversized to the packer and returns nil.

func (*Packer) UnpackLimitedStr

func (p *Packer) UnpackLimitedStr(limit uint16) string

UnpackLimitedStr unpacks a string. If the size of the string is greater than limit, adds errOversized to the packer and returns the empty string.

func (*Packer) UnpackLong

func (p *Packer) UnpackLong() uint64

UnpackLong unpacks a long from the byte array

func (*Packer) UnpackShort

func (p *Packer) UnpackShort() uint16

UnpackShort unpacks a short from the byte array

func (*Packer) UnpackStr

func (p *Packer) UnpackStr() string

UnpackStr unpacks a string from the byte array

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL