wrappers

package
v1.1.5 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 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