Documentation
¶
Overview ¶
Package encoding implements hdb field type encodings and decodings.
Index ¶
- Constants
- Variables
- func AuthVarFieldSize(size int) int
- type Decimal
- func NewDecimalFromDecompose(form byte, negative bool, coefficient []byte, exponent int32) (Decimal, error)
- func NewDecimalFromRat(r *big.Rat) (Decimal, error)
- func NewFixedFromDecompose(form byte, negative bool, coefficient []byte, exponent int32, prec, scale int) (Decimal, error)
- func NewFixedFromRat(r *big.Rat, prec, scale int) (Decimal, error)
- type Decoder
- func (d *Decoder) AlphanumField(alphanumDfv1 bool) (any, error)
- func (d *Decoder) AuthBigUint32() (uint32, error)
- func (d *Decoder) AuthBytes() []byte
- func (d *Decoder) AuthCesu8String(tr transform.Transformer) (string, error)
- func (d *Decoder) AuthString() string
- func (d *Decoder) AuthVarFieldInd() int
- func (d *Decoder) Bool() bool
- func (d *Decoder) BooleanField() (any, error)
- func (d *Decoder) Byte() byte
- func (d *Decoder) Bytes(n int) []byte
- func (d *Decoder) CESU8Bytes(tr transform.Transformer, size int) ([]byte, error)
- func (d *Decoder) CESU8LIBytes(tr transform.Transformer) (int, []byte, error)
- func (d *Decoder) CESU8LIString(tr transform.Transformer) (int, string, error)
- func (d *Decoder) Cesu8Field(tr transform.Transformer) (any, error)
- func (d *Decoder) DateField() (any, error)
- func (d *Decoder) DaydateField(emptyDateAsNull bool) (any, error)
- func (d *Decoder) Decimal() (*big.Int, int, error)
- func (d *Decoder) DecimalField() (any, error)
- func (d *Decoder) DoubleField() (any, error)
- func (d *Decoder) Fixed(size int) *big.Int
- func (d *Decoder) Fixed8Field(scale int) (any, error)
- func (d *Decoder) Fixed12Field(scale int) (any, error)
- func (d *Decoder) Fixed16Field(scale int) (any, error)
- func (d *Decoder) Float32() float32
- func (d *Decoder) Float64() float64
- func (d *Decoder) HexField() (any, error)
- func (d *Decoder) Int8() int8
- func (d *Decoder) Int16() int16
- func (d *Decoder) Int32() int32
- func (d *Decoder) Int64() int64
- func (d *Decoder) LIBytes() (int, []byte)
- func (d *Decoder) LIString() (n int, s string)
- func (d *Decoder) LongdateField() (any, error)
- func (d *Decoder) RealField() (any, error)
- func (d *Decoder) SeconddateField() (any, error)
- func (d *Decoder) SecondtimeField() (any, error)
- func (d *Decoder) Skip(cnt int)
- func (d *Decoder) Str(n int) string
- func (d *Decoder) TimeField() (any, error)
- func (d *Decoder) TimestampField() (any, error)
- func (d *Decoder) Uint16() uint16
- func (d *Decoder) Uint16ByteOrder(byteOrder binary.ByteOrder) uint16
- func (d *Decoder) Uint32() uint32
- func (d *Decoder) Uint32ByteOrder(byteOrder binary.ByteOrder) uint32
- func (d *Decoder) Uint64() uint64
- func (d *Decoder) VarField() (any, error)
- type Encoder
- func (e *Encoder) AuthVarFieldInd(size int) error
- func (e *Encoder) BigintField(v any) error
- func (e *Encoder) Bool(v bool)
- func (e *Encoder) BooleanField(v any) error
- func (e *Encoder) Byte(b byte)
- func (e *Encoder) Bytes(p []byte)
- func (e *Encoder) CESU8Bytes(tr transform.Transformer, p []byte) (int, error)
- func (e *Encoder) CESU8LIBytes(tr transform.Transformer, p []byte) error
- func (e *Encoder) CESU8LIString(tr transform.Transformer, s string) error
- func (e *Encoder) CESU8String(tr transform.Transformer, s string) (int, error)
- func (e *Encoder) Cesu8Field(tr transform.Transformer, v any) error
- func (e *Encoder) DateField(v any) error
- func (e *Encoder) DaydateField(v any) error
- func (e *Encoder) Decimal(m *big.Int, exp int)
- func (e *Encoder) DecimalField(v any) error
- func (e *Encoder) DoubleField(v any) error
- func (e *Encoder) Fixed(m *big.Int, size int)
- func (e *Encoder) FixedField(v any, size int) error
- func (e *Encoder) Float32(f float32)
- func (e *Encoder) Float64(f float64)
- func (e *Encoder) HexField(v any) error
- func (e *Encoder) Int8(i8 int8)
- func (e *Encoder) Int16(i16 int16)
- func (e *Encoder) Int32(i32 int32)
- func (e *Encoder) Int64(i64 int64)
- func (e *Encoder) IntegerField(v any) error
- func (e *Encoder) LIBytes(p []byte) error
- func (e *Encoder) LIString(s string) error
- func (e *Encoder) LongdateField(v any) error
- func (e *Encoder) RealField(v any) error
- func (e *Encoder) SeconddateField(v any) error
- func (e *Encoder) SecondtimeField(v any) error
- func (e *Encoder) SmallintField(v any) error
- func (e *Encoder) String(s string)
- func (e *Encoder) TimeField(v any) error
- func (e *Encoder) TimestampField(v any) error
- func (e *Encoder) TinyintField(v any) error
- func (e *Encoder) Uint16(u16 uint16)
- func (e *Encoder) Uint16ByteOrder(u16 uint16, byteOrder binary.ByteOrder)
- func (e *Encoder) Uint32(u32 uint32)
- func (e *Encoder) Uint64(u64 uint64)
- func (e *Encoder) VarField(v any) error
- func (e *Encoder) Zeroes(n int)
Constants ¶
const IntegerFieldSize = 4
IntegerFieldSize constant.
Variables ¶
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
AuthVarFieldSize returns the field size of an auth variable field indicator.
Types ¶
type Decimal ¶ added in v1.17.2
type Decimal struct {
// contains filtered or unexported fields
}
Decimal is the internal representation of a decimal value as mantissa and exponent.
func NewDecimalFromDecompose ¶ added in v1.17.2
func NewDecimalFromDecompose(form byte, negative bool, coefficient []byte, exponent int32) (Decimal, error)
NewDecimalFromDecompose creates a Decimal (dec128) from decimalDecompose parts.
func NewDecimalFromRat ¶ added in v1.17.2
NewDecimalFromRat creates a Decimal (dec128) from a *big.Rat.
func NewFixedFromDecompose ¶ added in v1.17.2
func NewFixedFromDecompose(form byte, negative bool, coefficient []byte, exponent int32, prec, scale int) (Decimal, error)
NewFixedFromDecompose creates a Decimal (fixed) from decimalDecompose parts.
func NewFixedFromRat ¶ added in v1.17.2
NewFixedFromRat creates a Decimal (fixed) from a *big.Rat.
type Decoder ¶
type Decoder []byte
Decoder decodes hdb protocol datatypes on basis of an buffer.
func (*Decoder) AlphanumField ¶ added in v1.8.14
AlphanumField decodes an alphanum field.
func (*Decoder) AuthBigUint32 ¶ added in v1.16.2
AuthBigUint32 decodes an auth big uint32 field.
func (*Decoder) AuthCesu8String ¶ added in v1.16.2
func (d *Decoder) AuthCesu8String(tr transform.Transformer) (string, error)
AuthCesu8String decodes an auth variable cesu8 string field.
func (*Decoder) AuthString ¶ added in v1.16.2
AuthString decodes an auth variable string field.
func (*Decoder) AuthVarFieldInd ¶ added in v1.16.2
AuthVarFieldInd decodes an auth variable field indicator.
func (*Decoder) BooleanField ¶ added in v1.8.14
BooleanField decodes a boolean field.
func (*Decoder) CESU8Bytes ¶
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
CESU8LIBytes decodes CESU-8 into UTF-8 bytes with length indicator.
func (*Decoder) CESU8LIString ¶ added in v0.107.3
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(tr transform.Transformer) (any, error)
Cesu8Field decodes a cesu8 field.
func (*Decoder) DaydateField ¶ added in v1.8.14
DaydateField decodes a daydate field.
func (*Decoder) Decimal ¶
Decimal decodes a decimal. - error is only returned in case of conversion errors.
func (*Decoder) DecimalField ¶ added in v1.8.14
DecimalField decodes a decimal field.
func (*Decoder) DoubleField ¶ added in v1.8.14
DoubleField decodes a double field.
func (*Decoder) Fixed8Field ¶ added in v1.8.14
Fixed8Field decodes a fixed8 field.
func (*Decoder) Fixed12Field ¶ added in v1.8.14
Fixed12Field decodes a fixed12 field.
func (*Decoder) Fixed16Field ¶ added in v1.8.14
Fixed16Field decodes a fixed16 field.
func (*Decoder) LongdateField ¶ added in v1.8.14
LongdateField decodes a longdate field.
func (*Decoder) SeconddateField ¶ added in v1.8.14
SeconddateField decodes a seconddate field.
func (*Decoder) SecondtimeField ¶ added in v1.8.14
SecondtimeField decodes a secondtime field.
func (*Decoder) TimestampField ¶ added in v1.8.14
TimestampField decodes a timestamp field.
func (*Decoder) Uint16ByteOrder ¶ added in v0.107.0
Uint16ByteOrder decodes an uint16 in given byte order.
func (*Decoder) Uint32ByteOrder ¶
Uint32ByteOrder decodes an uint32 in given byte order.
type Encoder ¶
type Encoder []byte
Encoder encodes hdb protocol datatypes on basis of an io.Writer.
func (*Encoder) AuthVarFieldInd ¶ added in v1.16.2
AuthVarFieldInd encodes an auth variable field indicator.
func (*Encoder) BigintField ¶ added in v1.8.14
BigintField encodes a bigint field.
func (*Encoder) BooleanField ¶ added in v1.8.14
BooleanField encodes a boolean field.
func (*Encoder) CESU8Bytes ¶
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(tr transform.Transformer, 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(tr transform.Transformer, s string) error
CESU8LIString encodes an UTF-8 into a CESU-8 string with length indicator.
func (*Encoder) CESU8String ¶
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(tr transform.Transformer, v any) error
Cesu8Field encodes a cesu8 field.
func (*Encoder) DaydateField ¶ added in v1.8.14
DaydateField encodes a daydate field.
func (*Encoder) DecimalField ¶ added in v1.8.14
DecimalField encodes a decimal field.
func (*Encoder) DoubleField ¶ added in v1.8.14
DoubleField encodes a double field.
func (*Encoder) FixedField ¶ added in v1.17.2
FixedField encodes a fixed field.
func (*Encoder) IntegerField ¶ added in v1.8.14
IntegerField encodes an integer field.
func (*Encoder) LongdateField ¶ added in v1.8.14
LongdateField encodes a longdate field.
func (*Encoder) SeconddateField ¶ added in v1.8.14
SeconddateField encodes a seconddate field.
func (*Encoder) SecondtimeField ¶ added in v1.8.14
SecondtimeField encodes a secondtime field.
func (*Encoder) SmallintField ¶ added in v1.8.14
SmallintField encodes a smallint field.
func (*Encoder) TimestampField ¶ added in v1.8.14
TimestampField encodes a timestamp field.
func (*Encoder) TinyintField ¶ added in v1.8.14
TinyintField encodes a tinyint field.
func (*Encoder) Uint16ByteOrder ¶ added in v0.107.0
Uint16ByteOrder encodes an uint16 in given byte order.