encoding

package
v1.16.2 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package encoding implements hdb field type en,- and decodings.

Index

Constants

View Source
const (
	BooleanFieldSize       = 1
	TinyintFieldSize       = 1
	SmallintFieldSize      = 2
	IntegerFieldSize       = 4
	BigintFieldSize        = 8
	RealFieldSize          = 4
	DoubleFieldSize        = 8
	DateFieldSize          = 4
	TimeFieldSize          = 4
	TimestampFieldSize     = DateFieldSize + TimeFieldSize
	LongdateFieldSize      = 8
	SeconddateFieldSize    = 8
	DaydateFieldSize       = 4
	SecondtimeFieldSize    = 4
	DecimalFieldSize       = 16
	Fixed8FieldSize        = 8
	Fixed12FieldSize       = 12
	Fixed16FieldSize       = 16
	LobInputParametersSize = 9
)

Field size constants.

Variables

View Source
var ErrDecimalOutOfRange = errors.New("decimal out of range error")

ErrDecimalOutOfRange means that a big.Rat exceeds the size of hdb decimal fields.

Functions

func AuthVarFieldSize added in v1.16.2

func AuthVarFieldSize(size int) int

AuthVarFieldSize returns the field size of an auth variable field indicator.

func Cesu8FieldSize added in v1.8.14

func Cesu8FieldSize(v any) int

Cesu8FieldSize returns the size of a cesu8 field.

func HexFieldSize added in v1.8.14

func HexFieldSize(v any) int

HexFieldSize returns the size of a hex field.

func VarFieldSize added in v0.107.4

func VarFieldSize(v any) int

VarFieldSize returns the size of a var field.

Types

type Decoder

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

Decoder decodes hdb protocol datatypes on basis of an io.Reader.

func NewDecoder

func NewDecoder(rd io.Reader, tr transform.Transformer, emptyDateAsNull bool) *Decoder

NewDecoder creates a new Decoder instance based on an io.Reader.

func (*Decoder) AlphanumField added in v1.8.14

func (d *Decoder) AlphanumField() (any, error)

AlphanumField decodes a alphanum field.

func (*Decoder) AuthBigUint32 added in v1.16.2

func (d *Decoder) AuthBigUint32() (uint32, error)

AuthBigUint32 decodes an auth big uint32 field.

func (*Decoder) AuthBytes added in v1.16.2

func (d *Decoder) AuthBytes() []byte

AuthBytes decodes an auth variable bytes field.

func (*Decoder) AuthCesu8String added in v1.16.2

func (d *Decoder) AuthCesu8String() (string, error)

AuthCesu8String decodes an auth variable cesu8 string field.

func (*Decoder) AuthString added in v1.16.2

func (d *Decoder) AuthString() string

AuthString decodes an auth variable string field.

func (*Decoder) AuthVarFieldInd added in v1.16.2

func (d *Decoder) AuthVarFieldInd() int

AuthVarFieldInd decodes an auth variable field indicator.

func (*Decoder) Bool

func (d *Decoder) Bool() bool

Bool decodes a boolean.

func (*Decoder) BooleanField added in v1.8.14

func (d *Decoder) BooleanField() (any, error)

BooleanField decodes a boolean field.

func (*Decoder) Byte

func (d *Decoder) Byte() byte

Byte decodes a byte.

func (*Decoder) Bytes

func (d *Decoder) Bytes(p []byte)

Bytes decodes bytes.

func (*Decoder) CESU8Bytes

func (d *Decoder) CESU8Bytes(size int) ([]byte, error)

CESU8Bytes decodes CESU-8 into UTF-8 bytes. - error is only returned in case of conversion errors.

func (*Decoder) CESU8LIBytes added in v0.107.3

func (d *Decoder) CESU8LIBytes() (int, []byte, error)

CESU8LIBytes decodes CESU-8 into UTF-8 bytes with length indicator.

func (*Decoder) CESU8LIString added in v0.107.3

func (d *Decoder) CESU8LIString() (int, string, error)

CESU8LIString decodes a CESU-8 into a UTF-8 string with length indicator.

func (*Decoder) Cesu8Field added in v1.8.14

func (d *Decoder) Cesu8Field() (any, error)

Cesu8Field decodes a cesu8 field.

func (*Decoder) Cnt

func (d *Decoder) Cnt() int

Cnt returns the value of the byte read counter.

func (*Decoder) DateField added in v1.8.14

func (d *Decoder) DateField() (any, error)

DateField decodes a date field.

func (*Decoder) DaydateField added in v1.8.14

func (d *Decoder) DaydateField() (any, error)

DaydateField decodes a daydate field.

func (*Decoder) Decimal

func (d *Decoder) Decimal() (*big.Int, int, error)

Decimal decodes a decimal. - error is only returned in case of conversion errors.

func (*Decoder) DecimalField added in v1.8.14

func (d *Decoder) DecimalField() (any, error)

DecimalField decodes a decimal field.

func (*Decoder) DoubleField added in v1.8.14

func (d *Decoder) DoubleField() (any, error)

DoubleField decodes a double field.

func (*Decoder) Error

func (d *Decoder) Error() error

Error returns the last decoder error.

func (*Decoder) Fixed

func (d *Decoder) Fixed(size int) *big.Int

Fixed decodes a fixed decimal.

func (*Decoder) Fixed8Field added in v1.8.14

func (d *Decoder) Fixed8Field(scale int) (any, error)

Fixed8Field decodes a fixed8 field.

func (*Decoder) Fixed12Field added in v1.8.14

func (d *Decoder) Fixed12Field(scale int) (any, error)

Fixed12Field decodes a fixed12 field.

func (*Decoder) Fixed16Field added in v1.8.14

func (d *Decoder) Fixed16Field(scale int) (any, error)

Fixed16Field decodes a fixed16 field.

func (*Decoder) Float32

func (d *Decoder) Float32() float32

Float32 decodes a float32.

func (*Decoder) Float64

func (d *Decoder) Float64() float64

Float64 decodes a float64.

func (*Decoder) HexField added in v1.8.14

func (d *Decoder) HexField() (any, error)

HexField decodes a hex field.

func (*Decoder) Int8

func (d *Decoder) Int8() int8

Int8 decodes an int8.

func (*Decoder) Int16

func (d *Decoder) Int16() int16

Int16 decodes an int16.

func (*Decoder) Int32

func (d *Decoder) Int32() int32

Int32 decodes an int32.

func (*Decoder) Int64

func (d *Decoder) Int64() int64

Int64 decodes an int64.

func (*Decoder) LIBytes added in v0.107.3

func (d *Decoder) LIBytes() (n int, b []byte)

LIBytes decodes bytes with length indicator.

func (*Decoder) LIString added in v0.107.3

func (d *Decoder) LIString() (n int, s string)

LIString decodes a string with length indicator.

func (*Decoder) LongdateField added in v1.8.14

func (d *Decoder) LongdateField() (any, error)

LongdateField decodes a longdate field.

func (*Decoder) RealField added in v1.8.14

func (d *Decoder) RealField() (any, error)

RealField decodes a real field.

func (*Decoder) ResetError

func (d *Decoder) ResetError()

ResetError resets reader error.

func (*Decoder) SeconddateField added in v1.8.14

func (d *Decoder) SeconddateField() (any, error)

SeconddateField decodes a seconddate field.

func (*Decoder) SecondtimeField added in v1.8.14

func (d *Decoder) SecondtimeField() (any, error)

SecondtimeField decodes a secondtime field.

func (*Decoder) SetAlphanumDfv1 added in v1.8.14

func (d *Decoder) SetAlphanumDfv1(alphanumDfv1 bool)

SetAlphanumDfv1 sets the alphanum dfv1 flag decoder.

func (*Decoder) Skip

func (d *Decoder) Skip(cnt int)

Skip skips cnt bytes from reading.

func (*Decoder) TimeField added in v1.8.14

func (d *Decoder) TimeField() (any, error)

TimeField decodes a time field.

func (*Decoder) TimestampField added in v1.8.14

func (d *Decoder) TimestampField() (any, error)

TimestampField decodes a timestamp field.

func (*Decoder) Uint16

func (d *Decoder) Uint16() uint16

Uint16 decodes an uint16.

func (*Decoder) Uint16ByteOrder added in v0.107.0

func (d *Decoder) Uint16ByteOrder(byteOrder binary.ByteOrder) uint16

Uint16ByteOrder decodes an uint16 in given byte order.

func (*Decoder) Uint32

func (d *Decoder) Uint32() uint32

Uint32 decodes an uint32.

func (*Decoder) Uint32ByteOrder

func (d *Decoder) Uint32ByteOrder(byteOrder binary.ByteOrder) uint32

Uint32ByteOrder decodes an uint32 in given byte order.

func (*Decoder) Uint64

func (d *Decoder) Uint64() uint64

Uint64 decodes an uint64.

func (*Decoder) VarField added in v1.8.14

func (d *Decoder) VarField() (any, error)

VarField decodes a var field.

type Encoder

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

Encoder encodes hdb protocol datatypes on basis of an io.Writer.

func NewEncoder

func NewEncoder(wr io.Writer, tr transform.Transformer) *Encoder

NewEncoder creates a new Encoder instance.

func (*Encoder) AuthVarFieldInd added in v1.16.2

func (e *Encoder) AuthVarFieldInd(size int) error

AuthVarFieldInd encodes an auth variable field indicator.

func (*Encoder) BigintField added in v1.8.14

func (e *Encoder) BigintField(v any) error

BigintField encodes a bigint field.

func (*Encoder) Bool

func (e *Encoder) Bool(v bool)

Bool encodes a boolean.

func (*Encoder) BooleanField added in v1.8.14

func (e *Encoder) BooleanField(v any) error

BooleanField encodes a boolean field.

func (*Encoder) Byte

func (e *Encoder) Byte(b byte)

Byte encodes a byte.

func (*Encoder) Bytes

func (e *Encoder) Bytes(p []byte)

Bytes encodes bytes.

func (*Encoder) CESU8Bytes

func (e *Encoder) CESU8Bytes(p []byte) (int, error)

CESU8Bytes encodes UTF-8 bytes into CESU-8 and returns the CESU-8 bytes written.

func (*Encoder) CESU8LIBytes added in v0.107.3

func (e *Encoder) CESU8LIBytes(p []byte) error

CESU8LIBytes encodes UTF-8 into CESU-8 bytes with length indicator.

func (*Encoder) CESU8LIString added in v0.107.3

func (e *Encoder) CESU8LIString(s string) error

CESU8LIString encodes an UTF-8 into a CESU-8 string with length indicator.

func (*Encoder) CESU8String

func (e *Encoder) CESU8String(s string) (int, error)

CESU8String encodes an UTF-8 string into CESU-8 and returns the CESU-8 bytes written.

func (*Encoder) Cesu8Field added in v1.8.14

func (e *Encoder) Cesu8Field(v any) error

Cesu8Field encodes a cesu8 field.

func (*Encoder) DateField added in v1.8.14

func (e *Encoder) DateField(v any) error

DateField encodes a dayte field.

func (*Encoder) DaydateField added in v1.8.14

func (e *Encoder) DaydateField(v any) error

DaydateField encodes a daydate field.

func (*Encoder) Decimal

func (e *Encoder) Decimal(m *big.Int, exp int)

Decimal encodes a decimal value.

func (*Encoder) DecimalField added in v1.8.14

func (e *Encoder) DecimalField(v any) error

DecimalField encodes a decimal field.

func (*Encoder) DoubleField added in v1.8.14

func (e *Encoder) DoubleField(v any) error

DoubleField encodes a double field.

func (*Encoder) Fixed

func (e *Encoder) Fixed(m *big.Int, size int)

Fixed encodes a fixed decimal value.

func (*Encoder) Fixed8Field added in v1.8.14

func (e *Encoder) Fixed8Field(v any, prec, scale int) error

Fixed8Field encodes a fixed8 field.

func (*Encoder) Fixed12Field added in v1.8.14

func (e *Encoder) Fixed12Field(v any, prec, scale int) error

Fixed12Field encodes a fixed12 field.

func (*Encoder) Fixed16Field added in v1.8.14

func (e *Encoder) Fixed16Field(v any, prec, scale int) error

Fixed16Field encodes a fixed16 field.

func (*Encoder) Float32

func (e *Encoder) Float32(f float32)

Float32 encodes a float32.

func (*Encoder) Float64

func (e *Encoder) Float64(f float64)

Float64 encodes a float64.

func (*Encoder) HexField added in v1.8.14

func (e *Encoder) HexField(v any) error

HexField encodes a hex field.

func (*Encoder) Int8

func (e *Encoder) Int8(i int8)

Int8 encodes an int8.

func (*Encoder) Int16

func (e *Encoder) Int16(i int16)

Int16 encodes an int16.

func (*Encoder) Int32

func (e *Encoder) Int32(i int32)

Int32 encodes an int32.

func (*Encoder) Int64

func (e *Encoder) Int64(i int64)

Int64 encodes an int64.

func (*Encoder) IntegerField added in v1.8.14

func (e *Encoder) IntegerField(v any) error

IntegerField encodes a integer field.

func (*Encoder) LIBytes added in v0.107.3

func (e *Encoder) LIBytes(p []byte) error

LIBytes encodes bytes with length indicator.

func (*Encoder) LIString added in v0.107.3

func (e *Encoder) LIString(s string) error

LIString encodes a string with length indicator.

func (*Encoder) LongdateField added in v1.8.14

func (e *Encoder) LongdateField(v any) error

LongdateField encodea a longdate field.

func (*Encoder) RealField added in v1.8.14

func (e *Encoder) RealField(v any) error

RealField encodes a real field.

func (*Encoder) SeconddateField added in v1.8.14

func (e *Encoder) SeconddateField(v any) error

SeconddateField encodes a seconddate field.

func (*Encoder) SecondtimeField added in v1.8.14

func (e *Encoder) SecondtimeField(v any) error

SecondtimeField encodes a secondtime field.

func (*Encoder) SmallintField added in v1.8.14

func (e *Encoder) SmallintField(v any) error

SmallintField encodes a smallint field.

func (*Encoder) String

func (e *Encoder) String(s string)

String encodes a string.

func (*Encoder) TimeField added in v1.8.14

func (e *Encoder) TimeField(v any) error

TimeField encodes a time field.

func (*Encoder) TimestampField added in v1.8.14

func (e *Encoder) TimestampField(v any) error

TimestampField encodes a timestamp field.

func (*Encoder) TinyintField added in v1.8.14

func (e *Encoder) TinyintField(v any) error

TinyintField encodes a tinyint field.

func (*Encoder) Uint16

func (e *Encoder) Uint16(i uint16)

Uint16 encodes an uint16.

func (*Encoder) Uint16ByteOrder added in v0.107.0

func (e *Encoder) Uint16ByteOrder(i uint16, byteOrder binary.ByteOrder)

Uint16ByteOrder encodes an uint16 in given byte order.

func (*Encoder) Uint32

func (e *Encoder) Uint32(i uint32)

Uint32 encodes an uint32.

func (*Encoder) Uint64

func (e *Encoder) Uint64(i uint64)

Uint64 encodes an uint64.

func (*Encoder) VarField added in v1.8.14

func (e *Encoder) VarField(v any) error

VarField encodes a var field.

func (*Encoder) Zeroes

func (e *Encoder) Zeroes(cnt int)

Zeroes encodes cnt zero byte values.

Jump to

Keyboard shortcuts

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