wrappers

package
v1.7.10-rc.8 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2022 License: BSD-3-Clause Imports: 9 Imported by: 73

Documentation

Index

Constants

View Source
const (
	MaxStringLen = math.MaxUint16

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

Variables

This section is empty.

Functions

func NewAggregate

func NewAggregate(errs []error) error

NewAggregate returns an aggregate error from a list of errors

func TryPack2DBytes

func TryPack2DBytes(packer *Packer, valIntf interface{})

TryPack2DBytes attempts to pack the value as a 2D byte slice

func TryPackByte

func TryPackByte(packer *Packer, valIntf interface{})

TryPackByte attempts to pack the value as a byte

func TryPackBytes

func TryPackBytes(packer *Packer, valIntf interface{})

TryPackBytes attempts to pack the value as a list of bytes

func TryPackHash

func TryPackHash(packer *Packer, valIntf interface{})

TryPackHash attempts to pack the value as a 32-byte sequence

func TryPackHashes

func TryPackHashes(packer *Packer, valIntf interface{})

TryPackHashes attempts to pack the value as a list of 32-byte sequences

func TryPackIP

func TryPackIP(packer *Packer, valIntf interface{})

TryPackIP attempts to pack the value as an ip port pair

func TryPackIPCertList

func TryPackIPCertList(packer *Packer, valIntf interface{})

func TryPackInt

func TryPackInt(packer *Packer, valIntf interface{})

TryPackInt attempts to pack the value as an int

func TryPackLong

func TryPackLong(packer *Packer, valIntf interface{})

TryPackLong attempts to pack the value as a long

func TryPackStr

func TryPackStr(packer *Packer, valIntf interface{})

TryPackStr attempts to pack the value as a string

func TryUnpack2DBytes

func TryUnpack2DBytes(packer *Packer) interface{}

TryUnpack2DBytes attempts to unpack the value as a 2D byte slice

func TryUnpackByte

func TryUnpackByte(packer *Packer) interface{}

TryUnpackByte attempts to unpack a value as a byte

func TryUnpackBytes

func TryUnpackBytes(packer *Packer) interface{}

TryUnpackBytes attempts to unpack the value as a list of bytes

func TryUnpackHash

func TryUnpackHash(packer *Packer) interface{}

TryUnpackHash attempts to unpack the value as a 32-byte sequence

func TryUnpackHashes

func TryUnpackHashes(packer *Packer) interface{}

TryUnpackHashes attempts to unpack the value as a list of 32-byte sequences

func TryUnpackIP

func TryUnpackIP(packer *Packer) interface{}

TryUnpackIP attempts to unpack the value as an ip port pair

func TryUnpackIPCertList

func TryUnpackIPCertList(packer *Packer) interface{}

func TryUnpackInt

func TryUnpackInt(packer *Packer) interface{}

TryUnpackInt attempts to unpack a value as an int

func TryUnpackLong

func TryUnpackLong(packer *Packer) interface{}

TryUnpackLong attempts to unpack a value as a long

func TryUnpackStr

func TryUnpackStr(packer *Packer) interface{}

TryUnpackStr attempts to unpack the value as 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 }

func (*Errs) Add

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

func (*Errs) Errored

func (errs *Errs) Errored() bool

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

func (p *Packer) CheckSpace(bytes int)

CheckSpace requires that there is at least bytes of write space left in the byte array. If this is not true, an error is added to the packer

func (*Packer) Expand

func (p *Packer) Expand(bytes int)

Expand ensures that there is bytes bytes left of space in the byte slice. If this is not allowed due to the maximum size, an error is added to the packer In order to understand this code, its important to understand the difference between a slice's length and its capacity.

func (*Packer) Pack2DByteSlice

func (p *Packer) Pack2DByteSlice(byteSlices [][]byte)

Pack2DByteSlice append a 2D byte slice to the byte array

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 append a byte to the byte array

func (*Packer) PackBytes

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

PackBytes append a byte slice to the byte array

func (*Packer) PackFixedByteSlices

func (p *Packer) PackFixedByteSlices(byteSlices [][]byte)

PackFixedByteSlices append a byte slice slice to the byte array

func (*Packer) PackFixedBytes

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

PackFixedBytes append a byte slice, with no length descriptor to the byte array

func (*Packer) PackIP

func (p *Packer) PackIP(ip utils.IPDesc)

PackIP packs an ip port pair to the byte array

func (*Packer) PackIPCert

func (p *Packer) PackIPCert(ipCert utils.IPCertDesc)

func (*Packer) PackIPs

func (p *Packer) PackIPs(ips []utils.IPDesc)

PackIPs unpacks an ip port pair slice from the byte array

func (*Packer) PackInt

func (p *Packer) PackInt(val uint32)

PackInt append an int to the byte array

func (*Packer) PackLong

func (p *Packer) PackLong(val uint64)

PackLong append a long to the byte array

func (*Packer) PackShort

func (p *Packer) PackShort(val uint16)

PackShort append a short to the byte array

func (*Packer) PackStr

func (p *Packer) PackStr(str string)

PackStr append a string to the byte array

func (*Packer) PackX509Certificate

func (p *Packer) PackX509Certificate(cert *x509.Certificate)

func (*Packer) Unpack2DByteSlice

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

Unpack2DByteSlice returns a 2D byte slice from 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 unpack a byte from the byte array

func (*Packer) UnpackBytes

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

UnpackBytes unpack a byte slice from the byte array

func (*Packer) UnpackFixedByteSlices

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

UnpackFixedByteSlices returns a byte slice slice from the byte array. Each byte slice has the specified size. The number of byte slices is read from the byte array.

func (*Packer) UnpackFixedBytes

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

UnpackFixedBytes unpack a byte slice, with no length descriptor from the byte array

func (*Packer) UnpackIP

func (p *Packer) UnpackIP() utils.IPDesc

UnpackIP unpacks an ip port pair from the byte array

func (*Packer) UnpackIPCert

func (p *Packer) UnpackIPCert() utils.IPCertDesc

func (*Packer) UnpackIPs

func (p *Packer) UnpackIPs() []utils.IPDesc

UnpackIPs unpacks an ip port pair slice from the byte array

func (*Packer) UnpackInt

func (p *Packer) UnpackInt() uint32

UnpackInt unpack an int from the byte array

func (*Packer) UnpackLong

func (p *Packer) UnpackLong() uint64

UnpackLong unpack a long from the byte array

func (*Packer) UnpackShort

func (p *Packer) UnpackShort() uint16

UnpackShort unpack a short from the byte array

func (*Packer) UnpackStr

func (p *Packer) UnpackStr() string

UnpackStr unpacks a string from the byte array

func (*Packer) UnpackX509Certificate

func (p *Packer) UnpackX509Certificate() *x509.Certificate

Jump to

Keyboard shortcuts

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