Documentation ¶
Index ¶
- Constants
- func TryPack2DBytes(packer *Packer, valIntf interface{})
- func TryPackAddr(packer *Packer, valIntf interface{})
- func TryPackAddrList(packer *Packer, valIntf interface{})
- func TryPackByte(packer *Packer, valIntf interface{})
- func TryPackBytes(packer *Packer, valIntf interface{})
- func TryPackHash(packer *Packer, valIntf interface{})
- func TryPackHashes(packer *Packer, valIntf interface{})
- func TryPackIP(packer *Packer, valIntf interface{})
- func TryPackIPCert(packer *Packer, valIntf interface{})
- func TryPackIPCertList(packer *Packer, valIntf interface{})
- func TryPackIPList(packer *Packer, valIntf interface{})
- func TryPackInt(packer *Packer, valIntf interface{})
- func TryPackLong(packer *Packer, valIntf interface{})
- func TryPackShort(packer *Packer, valIntf interface{})
- func TryPackStr(packer *Packer, valIntf interface{})
- func TryPackX509Certificate(packer *Packer, valIntf interface{})
- func TryUnpack2DBytes(packer *Packer) interface{}
- func TryUnpackAddr(packer *Packer) interface{}
- func TryUnpackAddrList(packer *Packer) interface{}
- func TryUnpackByte(packer *Packer) interface{}
- func TryUnpackBytes(packer *Packer) interface{}
- func TryUnpackHash(packer *Packer) interface{}
- func TryUnpackHashes(packer *Packer) interface{}
- func TryUnpackIP(packer *Packer) interface{}
- func TryUnpackIPCert(packer *Packer) interface{}
- func TryUnpackIPCertList(packer *Packer) interface{}
- func TryUnpackIPList(packer *Packer) interface{}
- func TryUnpackInt(packer *Packer) interface{}
- func TryUnpackLong(packer *Packer) interface{}
- func TryUnpackShort(packer *Packer) interface{}
- func TryUnpackStr(packer *Packer) interface{}
- func TryUnpackX509Certificate(packer *Packer) interface{}
- type Closer
- type Errs
- type Packer
- func (p *Packer) CheckSpace(bytes int)
- func (p *Packer) Expand(bytes int)
- func (p *Packer) Pack2DByteSlice(byteSlices [][]byte)
- func (p *Packer) PackBool(b bool)
- func (p *Packer) PackByte(val byte)
- func (p *Packer) PackBytes(bytes []byte)
- func (p *Packer) PackFixedByteSlices(byteSlices [][]byte)
- func (p *Packer) PackFixedBytes(bytes []byte)
- func (p *Packer) PackIP(ip utils.IPDesc)
- func (p *Packer) PackIPCert(ipCert utils.IPCertDesc)
- func (p *Packer) PackIPs(ips []utils.IPDesc)
- func (p *Packer) PackInt(val uint32)
- func (p *Packer) PackLong(val uint64)
- func (p *Packer) PackShort(val uint16)
- func (p *Packer) PackStr(str string)
- func (p *Packer) PackX509Certificate(cert *x509.Certificate)
- func (p *Packer) Unpack2DByteSlice() [][]byte
- func (p *Packer) UnpackBool() bool
- func (p *Packer) UnpackByte() byte
- func (p *Packer) UnpackBytes() []byte
- func (p *Packer) UnpackFixedByteSlices(size int) [][]byte
- func (p *Packer) UnpackFixedBytes(size int) []byte
- func (p *Packer) UnpackIP() utils.IPDesc
- func (p *Packer) UnpackIPCert() utils.IPCertDesc
- func (p *Packer) UnpackIPs() []utils.IPDesc
- func (p *Packer) UnpackInt() uint32
- func (p *Packer) UnpackLong() uint64
- func (p *Packer) UnpackShort() uint16
- func (p *Packer) UnpackStr() string
- func (p *Packer) UnpackX509Certificate() *x509.Certificate
Constants ¶
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 TryPack2DBytes ¶
func TryPack2DBytes(packer *Packer, valIntf interface{})
TryPack2DBytes attempts to pack the value as a 2D byte slice
func TryPackAddr ¶
func TryPackAddr(packer *Packer, valIntf interface{})
TryPackAddr attempts to pack the value as a 20-byte sequence
func TryPackAddrList ¶
func TryPackAddrList(packer *Packer, valIntf interface{})
TryPackAddrList attempts to pack the value as a list of 20-byte sequences
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 TryPackIPCert ¶
func TryPackIPCert(packer *Packer, valIntf interface{})
func TryPackIPCertList ¶
func TryPackIPCertList(packer *Packer, valIntf interface{})
func TryPackIPList ¶
func TryPackIPList(packer *Packer, valIntf interface{})
TryPackIPList attempts to pack the value as an ip port pair list
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 TryPackShort ¶
func TryPackShort(packer *Packer, valIntf interface{})
TryPackShort attempts to pack the value as a short
func TryPackStr ¶
func TryPackStr(packer *Packer, valIntf interface{})
TryPackStr attempts to pack the value as a string
func TryPackX509Certificate ¶
func TryPackX509Certificate(packer *Packer, valIntf interface{})
func TryUnpack2DBytes ¶
func TryUnpack2DBytes(packer *Packer) interface{}
TryUnpack2DBytes attempts to unpack the value as a 2D byte slice
func TryUnpackAddr ¶
func TryUnpackAddr(packer *Packer) interface{}
TryUnpackAddr attempts to unpack the value as a 20-byte sequence
func TryUnpackAddrList ¶
func TryUnpackAddrList(packer *Packer) interface{}
TryUnpackAddrList attempts to unpack the value as a list of 20-byte sequences
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 TryUnpackIPCert ¶
func TryUnpackIPCert(packer *Packer) interface{}
func TryUnpackIPCertList ¶
func TryUnpackIPCertList(packer *Packer) interface{}
func TryUnpackIPList ¶
func TryUnpackIPList(packer *Packer) interface{}
TryUnpackIPList attempts to unpack the value as an ip port pair list
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 TryUnpackShort ¶
func TryUnpackShort(packer *Packer) interface{}
TryUnpackShort attempts to unpack a value as a short
func TryUnpackStr ¶
func TryUnpackStr(packer *Packer) interface{}
TryUnpackStr attempts to unpack the value as a string
func TryUnpackX509Certificate ¶
func TryUnpackX509Certificate(packer *Packer) interface{}
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.
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 ¶
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 ¶
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 ¶
Pack2DByteSlice append a 2D byte slice to the byte array
func (*Packer) PackFixedByteSlices ¶
PackFixedByteSlices append a byte slice slice to the byte array
func (*Packer) PackFixedBytes ¶
PackFixedBytes append a byte slice, with no length descriptor to the byte array
func (*Packer) PackIPCert ¶
func (p *Packer) PackIPCert(ipCert utils.IPCertDesc)
func (*Packer) PackX509Certificate ¶
func (p *Packer) PackX509Certificate(cert *x509.Certificate)
func (*Packer) Unpack2DByteSlice ¶
Unpack2DByteSlice returns a 2D byte slice from the byte array.
func (*Packer) UnpackBool ¶
UnpackBool unpacks a bool from the byte array
func (*Packer) UnpackByte ¶
UnpackByte unpack a byte from the byte array
func (*Packer) UnpackBytes ¶
UnpackBytes unpack a byte slice from the byte array
func (*Packer) UnpackFixedByteSlices ¶
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 ¶
UnpackFixedBytes unpack a byte slice, with no length descriptor from the byte array
func (*Packer) UnpackIPCert ¶
func (p *Packer) UnpackIPCert() utils.IPCertDesc
func (*Packer) UnpackLong ¶
UnpackLong unpack a long from the byte array
func (*Packer) UnpackShort ¶
UnpackShort unpack a short from the byte array
func (*Packer) UnpackX509Certificate ¶
func (p *Packer) UnpackX509Certificate() *x509.Certificate