encoding

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 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 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, decoder func() transform.Transformer) *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) 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) EmptyDateAsNull added in v1.8.14

func (d *Decoder) EmptyDateAsNull() bool

EmptyDateAsNull returns the empty date as null flag.

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) 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) Fixed8Field added in v1.8.14

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

Fixed8Field decodes a fixed8 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) 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) Int8

func (d *Decoder) Int8() int8

Int8 decodes an int8.

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) SetEmptyDateAsNull added in v1.8.14

func (d *Decoder) SetEmptyDateAsNull(emptyDateAsNull bool)

SetEmptyDateAsNull sets the empty date as null flag.

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) Transformer added in v1.8.21

func (d *Decoder) Transformer() transform.Transformer

Transformer returns the cesu8 transformer.

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, encoder func() transform.Transformer) *Encoder

NewEncoder creates a new Encoder instance.

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) 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) Fixed8Field added in v1.8.14

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

Fixed8Field encodes a fixed8 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) 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) Int8

func (e *Encoder) Int8(i int8)

Int8 encodes an int8.

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