Documentation
¶
Index ¶
- Constants
- Variables
- func Bytes2String(data []byte) string
- func CompileAnyModel(id int, item any, w io.Writer) (err error)
- func CompileBlob(x []byte, w io.Writer) (err error)
- func CompileFloat32(f32 float32, box []byte, order binary.ByteOrder) (err error)
- func CompileFloat64(f32 float64, box []byte, order binary.ByteOrder) (err error)
- func CompileInt(i int, box []byte, order binary.ByteOrder) (err error)
- func CompileInt8(i8 int8, box []byte) (err error)
- func CompileInt8Header(i int, box []byte) (err error)
- func CompileInt16(i16 int16, box []byte, order binary.ByteOrder) (err error)
- func CompileInt32(i32 int32, box []byte, order binary.ByteOrder) (err error)
- func CompileInt64(i64 int64, box []byte, order binary.ByteOrder) (err error)
- func CompileModel(item serializable[int], w io.Writer) (err error)
- func CompileString(x string, box []byte) (err error)
- func CompileStringWriter(x string, w io.Writer) (err error)
- func CompileTime(t time.Time, box []byte, order binary.ByteOrder) error
- func CompileUInt(u uint, box []byte, order binary.ByteOrder) (err error)
- func CompileUInt8(u8 uint8, box []byte) (err error)
- func CompileUInt8Header(i int, box []byte) (err error)
- func CompileUInt16(u16 uint16, box []byte, order binary.ByteOrder) (err error)
- func CompileUInt32(u32 uint32, box []byte, order binary.ByteOrder) (err error)
- func CompileUInt64(u64 uint64, box []byte, order binary.ByteOrder) (err error)
- func FormatBytes(data []byte) string
- func If[T any](condition bool, a, b T) T
- func MapType[K comparable, V any](header IntType, keyType Type[K], valueType Type[V]) mapType[K, V]
- func MaxByteSize64(byteLength int) int64
- func MaxSize(byteLength int) int
- func ParseBlob(data []byte) ([]byte, error)
- func ParseFloat32(data []byte, order binary.ByteOrder) (float32, error)
- func ParseFloat64(data []byte, order binary.ByteOrder) (float64, error)
- func ParseInt(data []byte, order binary.ByteOrder) (int, error)
- func ParseInt8(data []byte) (int8, error)
- func ParseInt8Header(box []byte) (int, error)
- func ParseInt16(data []byte, order binary.ByteOrder) (int16, error)
- func ParseInt32(data []byte, order binary.ByteOrder) (int32, error)
- func ParseInt64(data []byte, order binary.ByteOrder) (int64, error)
- func ParseModel(r io.Reader) (int, any, error)
- func ParseString(data []byte) (res string, err error)
- func ParseTime(box []byte, order binary.ByteOrder) (time.Time, error)
- func ParseUInt(data []byte, order binary.ByteOrder) (uint, error)
- func ParseUInt8(data []byte) (uint8, error)
- func ParseUInt8Header(data []byte) (int, error)
- func ParseUInt16(data []byte, order binary.ByteOrder) (uint16, error)
- func ParseUInt32(data []byte, order binary.ByteOrder) (uint32, error)
- func ParseUInt64(data []byte, order binary.ByteOrder) (uint64, error)
- func Ptr[T any](t T) *T
- func RegisterModel(id int, builder builderAny) (err error)
- func String2Bytes(str string) (bts []byte)
- func WithResetFunc[T any](fn func(*T)) nativePooledFactoryOption[T]
- type ArrayType
- type BasicArrayField
- type BasicSliceField
- type BufferCursor
- type Compiler
- func (c *Compiler[T]) Array(field fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) Bool(getter Getter[T, bool]) *Compiler[T]
- func (c *Compiler[T]) Byte(getter Getter[T, byte]) *Compiler[T]
- func (c Compiler[T]) Compile(value T, w io.Writer) error
- func (c *Compiler[T]) Field(f fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) Float32(order binary.ByteOrder, getter Getter[T, float32]) *Compiler[T]
- func (c *Compiler[T]) Float64(order binary.ByteOrder, getter Getter[T, float64]) *Compiler[T]
- func (c *Compiler[T]) Int(order binary.ByteOrder, getter Getter[T, int]) *Compiler[T]
- func (c *Compiler[T]) Int8(getter Getter[T, int8]) *Compiler[T]
- func (c *Compiler[T]) Int16(order binary.ByteOrder, getter Getter[T, int16]) *Compiler[T]
- func (c *Compiler[T]) Int32(order binary.ByteOrder, getter Getter[T, int32]) *Compiler[T]
- func (c *Compiler[T]) Int64(order binary.ByteOrder, getter Getter[T, int64]) *Compiler[T]
- func (c *Compiler[T]) Map(field fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) Option(f fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) Slice(field fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) SmallVarchar(getter Getter[T, string]) *Compiler[T]
- func (c *Compiler[T]) Struct(field fieldCompiler[T]) *Compiler[T]
- func (c *Compiler[T]) Time(withLocation bool, getter Getter[T, time.Time]) *Compiler[T]
- func (c *Compiler[T]) TimeLocation(getter Getter[T, time.Time]) *Compiler[T]
- func (c *Compiler[T]) TimeUTC(getter Getter[T, time.Time]) *Compiler[T]
- func (c *Compiler[T]) UInt8(getter Getter[T, uint8]) *Compiler[T]
- func (c *Compiler[T]) UInt16(order binary.ByteOrder, getter Getter[T, uint16]) *Compiler[T]
- func (c *Compiler[T]) UInt16BE(getter Getter[T, uint16]) *Compiler[T]
- func (c *Compiler[T]) UInt16LE(getter Getter[T, uint16]) *Compiler[T]
- func (c *Compiler[T]) UInt32(order binary.ByteOrder, getter Getter[T, uint32]) *Compiler[T]
- func (c *Compiler[T]) UInt64(order binary.ByteOrder, getter Getter[T, uint64]) *Compiler[T]
- func (c *Compiler[T]) Varchar(getter Getter[T, string]) *Compiler[T]
- type CompilerFunc
- type CompilerType
- type ErrCompile
- type ErrFieldNotFound
- type ErrTypeAssertion
- type ErrUnSufficientBytes
- type Factory
- type Field
- func ArrayField[T, U any](length int, inner Type[U], setter Setter[T, SliceView[U]], ...) Field[T, U]
- func ArrayFieldGetter[T any, U any](length int, inner Type[U], getter Getter[T, SliceView[U]]) Field[T, U]
- func ArrayFieldSetter[T, U any](length int, inner Type[U], setter Setter[T, SliceView[U]]) Field[T, U]
- func BoolField[T any](tp Type[bool], getter Getter[T, bool], setter Setter[T, bool]) Field[T, bool]
- func BoolFieldGetter[T any](tp Type[bool], getter Getter[T, bool]) Field[T, bool]
- func BoolFieldSetter[T any](tp Type[bool], setter Setter[T, bool]) Field[T, bool]
- func DefaultSkipField[T any](pad int) Field[T, any]
- func Float32Field[T any](tp Type[float32], getter Getter[T, float32], setter Setter[T, float32]) Field[T, float32]
- func Float32FieldGetter[T any](tp Type[float32], getter Getter[T, float32]) Field[T, float32]
- func Float32FieldSetter[T any](tp Type[float32], setter Setter[T, float32]) Field[T, float32]
- func Float64Field[T any](tp Type[float64], getter Getter[T, float64], setter Setter[T, float64]) Field[T, float64]
- func Float64FieldGetter[T any](tp Type[float64], getter Getter[T, float64]) Field[T, float64]
- func Float64FieldSetter[T any](tp Type[float64], setter Setter[T, float64]) Field[T, float64]
- func Int8Field[T any](tp Type[int8], getter Getter[T, int8], setter Setter[T, int8]) Field[T, int8]
- func Int8FieldGetter[T any](tp Type[int8], getter Getter[T, int8]) Field[T, int8]
- func Int8FieldSetter[T any](tp Type[int8], setter Setter[T, int8]) Field[T, int8]
- func Int16Field[T any](tp Type[int16], getter Getter[T, int16], setter Setter[T, int16]) Field[T, int16]
- func Int16FieldGetter[T any](tp Type[int16], getter Getter[T, int16]) Field[T, int16]
- func Int16FieldSetter[T any](tp Type[int16], setter Setter[T, int16]) Field[T, int16]
- func Int32Field[T any](tp Type[int32], getter Getter[T, int32], setter Setter[T, int32]) Field[T, int32]
- func Int32FieldGetter[T any](tp Type[int32], getter Getter[T, int32]) Field[T, int32]
- func Int32FieldSetter[T any](tp Type[int32], setter Setter[T, int32]) Field[T, int32]
- func Int64Field[T any](tp Type[int64], getter Getter[T, int64], setter Setter[T, int64]) Field[T, int64]
- func Int64FieldGetter[T any](tp Type[int64], getter Getter[T, int64]) Field[T, int64]
- func Int64FieldSetter[T any](tp Type[int64], setter Setter[T, int64]) Field[T, int64]
- func IntField[T any](tp Type[int], getter Getter[T, int], setter Setter[T, int]) Field[T, int]
- func IntFieldGetter[T any](tp Type[int], getter Getter[T, int]) Field[T, int]
- func IntFieldSetter[T any](tp Type[int], setter Setter[T, int]) Field[T, int]
- func MapField[T any, K comparable, V any](header IntType, keyType Type[K], valueType Type[V], setter Setter[T, map[K]V], ...) Field[T, map[K]V]
- func MapFieldGetter[T any, K comparable, V any](header IntType, keyType Type[K], valueType Type[V], getter Getter[T, map[K]V]) Field[T, map[K]V]
- func MapFieldSetter[T any, K comparable, V any](header IntType, keyType Type[K], valueType Type[V], setter Setter[T, map[K]V]) Field[T, map[K]V]
- func SkipField[T any](tp Type[any]) Field[T, any]
- func SliceField[T, U any](header IntType, inner Type[U], setter Setter[T, SliceView[U]], ...) Field[T, U]
- func SliceFieldGetter[T any, U any](header IntType, inner Type[U], getter Getter[T, SliceView[U]]) Field[T, U]
- func SliceFieldSetter[T, U any](header IntType, inner Type[U], setter Setter[T, SliceView[U]]) Field[T, U]
- func StringField[T any](tp Type[string], getter Getter[T, string], setter Setter[T, string]) Field[T, string]
- func StringFieldGetter[T any](tp Type[string], getter Getter[T, string]) Field[T, string]
- func StringFieldSetter[T any](tp Type[string], setter Setter[T, string]) Field[T, string]
- func StructField[T, U any](getter Getter[T, U], setter Setter[T, U], inner structTypeI[U]) Field[T, U]
- func StructFieldGetter[T, U any](getter Getter[T, U], compiler CompilerType[U]) Field[T, U]
- func StructFieldSetter[T, U any](setter Setter[T, U], parser ParserType[U]) Field[T, U]
- func TimeField[T any](withLocation bool, getter Getter[T, time.Time], setter Setter[T, time.Time]) Field[T, time.Time]
- func TimeFieldGetter[T any](withLocation bool, getter Getter[T, time.Time]) Field[T, time.Time]
- func TimeFieldSetter[T any](withLocation bool, setter Setter[T, time.Time]) Field[T, time.Time]
- func UInt8Field[T any](tp Type[uint8], getter Getter[T, uint8], setter Setter[T, uint8]) Field[T, uint8]
- func UInt8FieldGetter[T any](tp Type[uint8], getter Getter[T, uint8]) Field[T, uint8]
- func UInt8FieldSetter[T any](tp Type[uint8], setter Setter[T, uint8]) Field[T, uint8]
- func UInt16Field[T any](tp Type[uint16], getter Getter[T, uint16], setter Setter[T, uint16]) Field[T, uint16]
- func UInt16FieldGetter[T any](tp Type[uint16], getter Getter[T, uint16]) Field[T, uint16]
- func UInt16FieldSetter[T any](tp Type[uint16], setter Setter[T, uint16]) Field[T, uint16]
- func UInt32Field[T any](tp Type[uint32], getter Getter[T, uint32], setter Setter[T, uint32]) Field[T, uint32]
- func UInt32FieldGetter[T any](tp Type[uint32], getter Getter[T, uint32]) Field[T, uint32]
- func UInt32FieldSetter[T any](tp Type[uint32], setter Setter[T, uint32]) Field[T, uint32]
- func UInt64Field[T any](tp Type[uint64], getter Getter[T, uint64], setter Setter[T, uint64]) Field[T, uint64]
- func UInt64FieldGetter[T any](tp Type[uint64], getter Getter[T, uint64]) Field[T, uint64]
- func UInt64FieldSetter[T any](tp Type[uint64], setter Setter[T, uint64]) Field[T, uint64]
- type FixedField
- type FuncFactory
- type Getter
- type IntType
- type Iterable
- type ModelBuilder
- func (b ModelBuilder[T]) Array(field fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) Bool(getter Getter[T, bool], setter Setter[T, bool]) ModelBuilder[T]
- func (b ModelBuilder[T]) Byte(getter Getter[T, byte], setter Setter[T, byte]) ModelBuilder[T]
- func (b ModelBuilder[T]) Compile(value T, w io.Writer) error
- func (b ModelBuilder[T]) CompileAny(value any, w io.Writer) error
- func (b ModelBuilder[T]) Field(f fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) Float32(order binary.ByteOrder, getter Getter[T, float32], setter Setter[T, float32]) ModelBuilder[T]
- func (b ModelBuilder[T]) Float64(order binary.ByteOrder, getter Getter[T, float64], setter Setter[T, float64]) ModelBuilder[T]
- func (b ModelBuilder[T]) Int(order binary.ByteOrder, getter Getter[T, int], setter Setter[T, int]) ModelBuilder[T]
- func (b ModelBuilder[T]) Int8(getter Getter[T, int8], setter Setter[T, int8]) ModelBuilder[T]
- func (b ModelBuilder[T]) Int32(order binary.ByteOrder, getter Getter[T, int32], setter Setter[T, int32]) ModelBuilder[T]
- func (b ModelBuilder[T]) Int64(order binary.ByteOrder, getter Getter[T, int64], setter Setter[T, int64]) ModelBuilder[T]
- func (b ModelBuilder[T]) Map(field fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) Option(field fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) Parco() (*Parser[T], *Compiler[T])
- func (b ModelBuilder[T]) Parse(r io.Reader) (T, error)
- func (b ModelBuilder[T]) ParseAny(r io.Reader) (any, error)
- func (b ModelBuilder[T]) Slice(field fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) SmallVarchar(getter Getter[T, string], setter Setter[T, string]) ModelBuilder[T]
- func (b ModelBuilder[T]) Struct(field fieldBuilder[T]) ModelBuilder[T]
- func (b ModelBuilder[T]) Time(withLocation bool, getter Getter[T, time.Time], setter Setter[T, time.Time]) ModelBuilder[T]
- func (b ModelBuilder[T]) TimeLocation(getter Getter[T, time.Time], setter Setter[T, time.Time]) ModelBuilder[T]
- func (b ModelBuilder[T]) TimeUTC(getter Getter[T, time.Time], setter Setter[T, time.Time]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt8(getter Getter[T, uint8], setter Setter[T, uint8]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt16(order binary.ByteOrder, getter Getter[T, uint16], setter Setter[T, uint16]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt16BE(getter Getter[T, uint16], setter Setter[T, uint16]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt16LE(getter Getter[T, uint16], setter Setter[T, uint16]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt32(order binary.ByteOrder, getter Getter[T, uint32], setter Setter[T, uint32]) ModelBuilder[T]
- func (b ModelBuilder[T]) UInt64(order binary.ByteOrder, getter Getter[T, uint64], setter Setter[T, uint64]) ModelBuilder[T]
- func (b ModelBuilder[T]) Varchar(getter Getter[T, string], setter Setter[T, string]) ModelBuilder[T]
- type ModelMultiBuilder
- func (b *ModelMultiBuilder[T]) Compile(item serializable[T], w io.Writer) (err error)
- func (b *ModelMultiBuilder[T]) CompileAny(id T, item any, w io.Writer) (err error)
- func (b *ModelMultiBuilder[T]) MustRegister(id T, builder builderAny) *ModelMultiBuilder[T]
- func (b *ModelMultiBuilder[T]) Parse(r io.Reader) (id T, res any, err error)
- func (b *ModelMultiBuilder[T]) Register(id T, builder builderAny) (*ModelMultiBuilder[T], error)
- type NativePooledFactory
- type OptionalField
- type OptionalType
- type Parser
- func (p *Parser[T]) Array(field fieldParser[T]) *Parser[T]
- func (c *Parser[T]) Bool(setter Setter[T, bool]) *Parser[T]
- func (p *Parser[T]) Byte(setter Setter[T, byte]) *Parser[T]
- func (p *Parser[T]) Field(f fieldParser[T]) *Parser[T]
- func (p *Parser[T]) Float32(order binary.ByteOrder, setter Setter[T, float32]) *Parser[T]
- func (p *Parser[T]) Float64(order binary.ByteOrder, setter Setter[T, float64]) *Parser[T]
- func (p *Parser[T]) Int(order binary.ByteOrder, setter Setter[T, int]) *Parser[T]
- func (p *Parser[T]) Int8(setter Setter[T, int8]) *Parser[T]
- func (p *Parser[T]) Int32(order binary.ByteOrder, setter Setter[T, int32]) *Parser[T]
- func (p *Parser[T]) Int64(order binary.ByteOrder, setter Setter[T, int64]) *Parser[T]
- func (p *Parser[T]) Map(field fieldParser[T]) *Parser[T]
- func (p *Parser[T]) Option(f fieldParser[T]) *Parser[T]
- func (p *Parser[T]) Parse(r io.Reader) (T, error)
- func (p *Parser[T]) ParseBytes(data []byte) (T, error)
- func (p *Parser[T]) Skip(pad int) *Parser[T]
- func (p *Parser[T]) Slice(field fieldParser[T]) *Parser[T]
- func (p *Parser[T]) SmallVarchar(setter Setter[T, string]) *Parser[T]
- func (p *Parser[T]) Struct(field fieldParser[T]) *Parser[T]
- func (p *Parser[T]) Time(withLocation bool, setter Setter[T, time.Time]) *Parser[T]
- func (p *Parser[T]) TimeLocation(setter Setter[T, time.Time]) *Parser[T]
- func (p *Parser[T]) TimeUTC(setter Setter[T, time.Time]) *Parser[T]
- func (p *Parser[T]) UInt8(setter Setter[T, uint8]) *Parser[T]
- func (p *Parser[T]) UInt16(order binary.ByteOrder, setter Setter[T, uint16]) *Parser[T]
- func (p *Parser[T]) UInt16BE(setter Setter[T, uint16]) *Parser[T]
- func (p *Parser[T]) UInt16LE(setter Setter[T, uint16]) *Parser[T]
- func (p *Parser[T]) UInt32(order binary.ByteOrder, setter Setter[T, uint32]) *Parser[T]
- func (p *Parser[T]) UInt64(order binary.ByteOrder, setter Setter[T, uint64]) *Parser[T]
- func (p *Parser[T]) Varchar(setter Setter[T, string]) *Parser[T]
- type ParserFunc
- type ParserType
- type Pool
- func (p *Pool) Get(size int) *[]byte
- func (p *Pool) Get1() *[]byte
- func (p *Pool) Get2() *[]byte
- func (p *Pool) Get4() *[]byte
- func (p *Pool) Get8() *[]byte
- func (p *Pool) Get256() *[]byte
- func (p *Pool) GetAny() *[]byte
- func (p *Pool) GetAnyMap(size int) *[]byte
- func (p *Pool) Put(b *[]byte)
- func (p *Pool) Put1(b *[]byte)
- func (p *Pool) Put2(b *[]byte)
- func (p *Pool) Put4(b *[]byte)
- func (p *Pool) Put8(b *[]byte)
- func (p *Pool) Put256(b *[]byte)
- func (p *Pool) PutAny(b *[]byte)
- func (p *Pool) PutAnyMap(b *[]byte)
- type PoolFactory
- type Pooler
- type Setter
- type SizerFunc
- type SliceType
- type SliceView
- type StructType
- type TimeType
- type Type
- func Blob(header IntType) Type[[]byte]
- func Bool() Type[bool]
- func Byte() Type[byte]
- func Float32(order binary.ByteOrder) Type[float32]
- func Float32BE() Type[float32]
- func Float32LE() Type[float32]
- func Float64(order binary.ByteOrder) Type[float64]
- func Float64BE() Type[float64]
- func Float64LE() Type[float64]
- func Int(order binary.ByteOrder) Type[int]
- func Int8() Type[int8]
- func Int8Header() Type[int]
- func Int16(order binary.ByteOrder) Type[int16]
- func Int16BE() Type[int16]
- func Int16BEHeader() Type[int]
- func Int16Header(order binary.ByteOrder) Type[int]
- func Int16LE() Type[int16]
- func Int16LEHeader() Type[int]
- func Int32(order binary.ByteOrder) Type[int32]
- func Int32BE() Type[int32]
- func Int32BEHeader() Type[int]
- func Int32Header(order binary.ByteOrder) Type[int]
- func Int32LE() Type[int32]
- func Int32LEHeader() Type[int]
- func Int64(order binary.ByteOrder) Type[int64]
- func Int64BE() Type[int64]
- func Int64BEHeader() Type[int]
- func Int64Header(order binary.ByteOrder) Type[int]
- func Int64LE() Type[int64]
- func Int64LEHeader() Type[int]
- func IntBE() Type[int]
- func IntBEHeader() Type[int]
- func IntHeader(order binary.ByteOrder) Type[int]
- func IntLE() Type[int]
- func IntLEHeader() Type[int]
- func LongText(order binary.ByteOrder) Type[string]
- func NewFixedType[T any](byteLength int, parserFunc ParserFunc[T], compilerFunc CompilerFunc[T]) Type[T]
- func NewVarcharType(header IntType) Type[string]
- func SkipType(pad int) Type[any]
- func SkipTypeFactory(pad int) Type[any]
- func SmallVarchar() Type[string]
- func String(header IntType) Type[string]
- func Text(order binary.ByteOrder) Type[string]
- func TimeLocation() Type[time.Time]
- func TimeUTC() Type[time.Time]
- func UInt(order binary.ByteOrder) Type[uint]
- func UInt8() Type[uint8]
- func UInt8Header() Type[int]
- func UInt16(order binary.ByteOrder) Type[uint16]
- func UInt16BE() Type[uint16]
- func UInt16Header(order binary.ByteOrder) Type[int]
- func UInt16HeaderBE() Type[int]
- func UInt16HeaderLE() Type[int]
- func UInt16LE() Type[uint16]
- func UInt32(order binary.ByteOrder) Type[uint32]
- func UInt32BE() Type[uint32]
- func UInt32BEHeader() Type[int]
- func UInt32Header(order binary.ByteOrder) Type[int]
- func UInt32LE() Type[uint32]
- func UInt32LEHeader() Type[int]
- func UInt64(order binary.ByteOrder) Type[uint64]
- func UInt64BE() Type[uint64]
- func UInt64BEHeader() Type[int]
- func UInt64Header(order binary.ByteOrder) Type[int]
- func UInt64LE() Type[uint64]
- func UInt64LEHeader() Type[int]
- func UIntBE() Type[uint]
- func UIntBEHeader() Type[int]
- func UIntHeader(order binary.ByteOrder) Type[int]
- func UIntLE() Type[uint]
- func UIntLEHeader() Type[int]
- func Varchar() Type[string]
- func VarcharOrder(order binary.ByteOrder) Type[string]
Constants ¶
View Source
const ( // MaxPoolMapSize limits the number of dynamically created pools to prevent memory leaks MaxPoolMapSize = 100 // DefaultPoolAnySize is the size of buffers returned by GetAny() (8KB) DefaultPoolAnySize = 1 << 13 )
View Source
const ( // MaxReasonableMapLength is the maximum allowed length for maps // to prevent malicious or corrupted data from causing excessive memory allocation. MaxReasonableMapLength = 10_000_000 // 10 million entries )
View Source
const ( // MaxReasonableSliceLength is the maximum allowed length for slices // to prevent malicious or corrupted data from causing excessive memory allocation. MaxReasonableSliceLength = 10_000_000 // 10 million elements )
View Source
const ( // MaxReasonableVarSize is the maximum allowed size for variable-length types // to prevent malicious or corrupted data from causing excessive memory allocation. // Set to 100MB - adjust based on your use case. MaxReasonableVarSize = 100 * 1024 * 1024 // 100MB )
Variables ¶
View Source
var ( ErrNotIntegerType = errors.New("not an integer type") ErrOverflow = errors.New("bytes overflow") ErrCannotRead = errors.New("unsufficient bytes read") ErrCannotWrite = errors.New("unsufficient bytes written") ErrAlreadyRegistered = errors.New("builder is registered already") ErrUnknownType = errors.New("unknown type") ErrInvalidLength = errors.New("invalid length") )
View Source
var (
SinglePool = NewPool()
)
Functions ¶
func Bytes2String ¶
func CompileAnyModel ¶ added in v0.12.0
func CompileFloat32 ¶ added in v0.9.0
func CompileFloat64 ¶ added in v0.9.0
func CompileInt ¶ added in v0.5.0
func CompileInt8 ¶ added in v0.5.0
func CompileInt8Header ¶ added in v0.5.0
func CompileInt16 ¶ added in v0.5.0
func CompileInt32 ¶ added in v0.5.0
func CompileInt64 ¶ added in v0.5.0
func CompileModel ¶ added in v0.12.0
func CompileString ¶
func CompileTime ¶ added in v0.10.0
func CompileUInt ¶ added in v0.5.0
func CompileUInt8 ¶
func CompileUInt8Header ¶
func CompileUInt32 ¶ added in v0.5.0
func CompileUInt64 ¶ added in v0.5.0
func FormatBytes ¶ added in v0.4.0
func MapType ¶ added in v0.2.0
func MapType[K comparable, V any](header IntType, keyType Type[K], valueType Type[V]) mapType[K, V]
func MaxByteSize64 ¶
func ParseFloat32 ¶ added in v0.9.0
func ParseFloat64 ¶ added in v0.9.0
func ParseInt8Header ¶ added in v0.5.0
func ParseInt16 ¶ added in v0.5.0
func ParseInt32 ¶ added in v0.5.0
func ParseInt64 ¶ added in v0.5.0
func ParseString ¶
func ParseUInt8 ¶
func ParseUInt8Header ¶
func ParseUInt32 ¶ added in v0.5.0
func ParseUInt64 ¶ added in v0.5.0
func RegisterModel ¶ added in v0.12.0
func String2Bytes ¶
func WithResetFunc ¶ added in v0.4.1
func WithResetFunc[T any](fn func(*T)) nativePooledFactoryOption[T]
Types ¶
type ArrayType ¶
type ArrayType[T any] struct { // contains filtered or unexported fields }
func (ArrayType[T]) ByteLength ¶
type BasicArrayField ¶ added in v0.8.0
type BasicArrayField[T, U any] struct { // contains filtered or unexported fields }
func (BasicArrayField[T, U]) Compile ¶ added in v0.8.0
func (s BasicArrayField[T, U]) Compile(item *T, w io.Writer) error
func (BasicArrayField[T, U]) ID ¶ added in v0.8.0
func (s BasicArrayField[T, U]) ID() string
type BasicSliceField ¶ added in v0.7.0
type BasicSliceField[T, U any] struct { // contains filtered or unexported fields }
func (BasicSliceField[T, U]) Compile ¶ added in v0.7.0
func (s BasicSliceField[T, U]) Compile(item *T, w io.Writer) error
func (BasicSliceField[T, U]) ID ¶ added in v0.7.0
func (s BasicSliceField[T, U]) ID() string
type BufferCursor ¶
type BufferCursor struct {
// contains filtered or unexported fields
}
func NewBufferCursor ¶
func NewBufferCursor(data []byte, cursor int) BufferCursor
type Compiler ¶
type Compiler[T any] struct { // contains filtered or unexported fields }
func CompilerModel ¶
func CompilerModel[T any]() *Compiler[T]
func (*Compiler[T]) Array ¶ added in v0.6.0
func (c *Compiler[T]) Array(field fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) Bool ¶ added in v0.6.0
func (c *Compiler[T]) Bool(getter Getter[T, bool]) *Compiler[T]
func (*Compiler[T]) Byte ¶ added in v0.6.0
func (c *Compiler[T]) Byte(getter Getter[T, byte]) *Compiler[T]
func (*Compiler[T]) Field ¶ added in v0.6.0
func (c *Compiler[T]) Field(f fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) Int8 ¶ added in v0.6.0
func (c *Compiler[T]) Int8(getter Getter[T, int8]) *Compiler[T]
func (*Compiler[T]) Map ¶ added in v0.6.0
func (c *Compiler[T]) Map(field fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) Option ¶ added in v0.6.0
func (c *Compiler[T]) Option(f fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) Slice ¶ added in v0.7.0
func (c *Compiler[T]) Slice(field fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) SmallVarchar ¶ added in v0.6.0
func (c *Compiler[T]) SmallVarchar(getter Getter[T, string]) *Compiler[T]
func (*Compiler[T]) Struct ¶ added in v0.6.0
func (c *Compiler[T]) Struct(field fieldCompiler[T]) *Compiler[T]
func (*Compiler[T]) TimeLocation ¶ added in v0.10.0
func (*Compiler[T]) UInt8 ¶ added in v0.6.0
func (c *Compiler[T]) UInt8(getter Getter[T, uint8]) *Compiler[T]
func (*Compiler[T]) UInt16BE ¶ added in v0.6.0
func (c *Compiler[T]) UInt16BE(getter Getter[T, uint16]) *Compiler[T]
func (*Compiler[T]) UInt16LE ¶ added in v0.6.0
func (c *Compiler[T]) UInt16LE(getter Getter[T, uint16]) *Compiler[T]
type CompilerFunc ¶
func CompileStringFactory ¶
func CompileStringFactory() CompilerFunc[string]
func CompileUInt16Factory ¶
type CompilerType ¶ added in v0.4.0
type ErrCompile ¶
type ErrCompile struct {
// contains filtered or unexported fields
}
func NewErrCompile ¶
func NewErrCompile(reason string) ErrCompile
func (ErrCompile) Error ¶
func (e ErrCompile) Error() string
type ErrFieldNotFound ¶
type ErrFieldNotFound struct {
// contains filtered or unexported fields
}
func NewErrFieldNotFoundError ¶
func NewErrFieldNotFoundError(field string) ErrFieldNotFound
func (ErrFieldNotFound) Error ¶
func (e ErrFieldNotFound) Error() string
type ErrTypeAssertion ¶
type ErrTypeAssertion struct {
// contains filtered or unexported fields
}
func NewErrTypeAssertionError ¶
func NewErrTypeAssertionError(want, have string) ErrTypeAssertion
func (ErrTypeAssertion) Error ¶
func (e ErrTypeAssertion) Error() string
type ErrUnSufficientBytes ¶
type ErrUnSufficientBytes struct {
// contains filtered or unexported fields
}
func NewErrUnSufficientBytesError ¶
func NewErrUnSufficientBytesError(want, have int) ErrUnSufficientBytes
func (ErrUnSufficientBytes) Error ¶
func (e ErrUnSufficientBytes) Error() string
type Field ¶
type Field[T, U any] interface { ID() string Parse(*T, io.Reader) error Compile(*T, io.Writer) error }
func ArrayField ¶
func ArrayFieldGetter ¶
func ArrayFieldSetter ¶
func BoolFieldGetter ¶ added in v0.3.0
func BoolFieldSetter ¶ added in v0.3.0
func DefaultSkipField ¶
func Float32Field ¶ added in v0.9.0
func Float32FieldGetter ¶ added in v0.9.0
func Float32FieldSetter ¶ added in v0.9.0
func Float64Field ¶ added in v0.9.0
func Float64FieldGetter ¶ added in v0.9.0
func Float64FieldSetter ¶ added in v0.9.0
func Int8FieldGetter ¶ added in v0.5.0
func Int8FieldSetter ¶ added in v0.5.0
func Int16Field ¶ added in v0.5.0
func Int16FieldGetter ¶ added in v0.5.0
func Int16FieldSetter ¶ added in v0.5.0
func Int32Field ¶ added in v0.5.0
func Int32FieldGetter ¶ added in v0.5.0
func Int32FieldSetter ¶ added in v0.5.0
func Int64Field ¶ added in v0.5.0
func Int64FieldGetter ¶ added in v0.5.0
func Int64FieldSetter ¶ added in v0.5.0
func IntFieldGetter ¶ added in v0.5.0
func IntFieldSetter ¶ added in v0.5.0
func MapField ¶ added in v0.2.0
func MapField[T any, K comparable, V any]( header IntType, keyType Type[K], valueType Type[V], setter Setter[T, map[K]V], getter Getter[T, map[K]V], ) Field[T, map[K]V]
func MapFieldGetter ¶ added in v0.2.0
func MapFieldGetter[T any, K comparable, V any]( header IntType, keyType Type[K], valueType Type[V], getter Getter[T, map[K]V], ) Field[T, map[K]V]
func MapFieldSetter ¶ added in v0.2.0
func MapFieldSetter[T any, K comparable, V any]( header IntType, keyType Type[K], valueType Type[V], setter Setter[T, map[K]V], ) Field[T, map[K]V]
func SliceField ¶ added in v0.7.0
func SliceFieldGetter ¶ added in v0.7.0
func SliceFieldSetter ¶ added in v0.7.0
func StringField ¶
func StringFieldGetter ¶
func StringFieldSetter ¶
func StructField ¶ added in v0.4.0
func StructFieldGetter ¶ added in v0.4.0
func StructFieldGetter[T, U any]( getter Getter[T, U], compiler CompilerType[U], ) Field[T, U]
func StructFieldSetter ¶ added in v0.4.0
func TimeFieldGetter ¶ added in v0.10.0
func TimeFieldSetter ¶ added in v0.10.0
func UInt8Field ¶
func UInt8FieldGetter ¶
func UInt8FieldSetter ¶
func UInt16Field ¶
func UInt16FieldGetter ¶
func UInt16FieldSetter ¶
func UInt32Field ¶ added in v0.5.0
func UInt32FieldGetter ¶ added in v0.5.0
func UInt32FieldSetter ¶ added in v0.5.0
func UInt64Field ¶ added in v0.5.0
func UInt64FieldGetter ¶ added in v0.5.0
type FixedField ¶
func (FixedField[T, U]) Compile ¶
func (s FixedField[T, U]) Compile(item *T, w io.Writer) (err error)
func (FixedField[T, U]) ID ¶
func (s FixedField[T, U]) ID() string
type FuncFactory ¶
type FuncFactory[T any] func() T
type ModelBuilder ¶
type ModelBuilder[T any] struct { // contains filtered or unexported fields }
func (ModelBuilder[T]) Array ¶
func (b ModelBuilder[T]) Array(field fieldBuilder[T]) ModelBuilder[T]
func (ModelBuilder[T]) CompileAny ¶ added in v0.11.0
func (ModelBuilder[T]) Map ¶ added in v0.2.0
func (b ModelBuilder[T]) Map(field fieldBuilder[T]) ModelBuilder[T]
func (ModelBuilder[T]) Option ¶ added in v0.6.0
func (b ModelBuilder[T]) Option(field fieldBuilder[T]) ModelBuilder[T]
func (ModelBuilder[T]) Parco ¶ added in v0.8.0
func (b ModelBuilder[T]) Parco() (*Parser[T], *Compiler[T])
func (ModelBuilder[T]) Slice ¶ added in v0.7.0
func (b ModelBuilder[T]) Slice(field fieldBuilder[T]) ModelBuilder[T]
func (ModelBuilder[T]) SmallVarchar ¶
func (ModelBuilder[T]) Struct ¶ added in v0.4.0
func (b ModelBuilder[T]) Struct(field fieldBuilder[T]) ModelBuilder[T]
func (ModelBuilder[T]) TimeLocation ¶ added in v0.10.0
type ModelMultiBuilder ¶ added in v0.11.0
type ModelMultiBuilder[T comparable] struct { // contains filtered or unexported fields }
func MultiBuilder ¶ added in v0.11.0
func MultiBuilder[T comparable](header Type[T]) *ModelMultiBuilder[T]
func (*ModelMultiBuilder[T]) CompileAny ¶ added in v0.11.0
func (*ModelMultiBuilder[T]) MustRegister ¶ added in v0.11.0
func (b *ModelMultiBuilder[T]) MustRegister(id T, builder builderAny) *ModelMultiBuilder[T]
type NativePooledFactory ¶
type NativePooledFactory[T any] struct { // contains filtered or unexported fields }
func (*NativePooledFactory[T]) Get ¶
func (f *NativePooledFactory[T]) Get() T
func (*NativePooledFactory[T]) Put ¶
func (f *NativePooledFactory[T]) Put(t T)
type OptionalField ¶ added in v0.6.0
type OptionalField[T, U any] struct { // contains filtered or unexported fields }
func OptionField ¶ added in v0.6.0
func OptionField[T, U any]( tp Type[U], setter Setter[T, *U], getter Getter[T, *U], ) OptionalField[T, U]
func OptionFieldGetter ¶ added in v0.6.0
func OptionFieldGetter[T, U any]( tp Type[U], getter Getter[T, *U], ) OptionalField[T, U]
func OptionFieldSetter ¶ added in v0.6.0
func OptionFieldSetter[T, U any]( tp Type[U], setter Setter[T, *U], ) OptionalField[T, U]
func (OptionalField[T, U]) Compile ¶ added in v0.6.0
func (s OptionalField[T, U]) Compile(item *T, w io.Writer) (err error)
func (OptionalField[T, U]) ID ¶ added in v0.6.0
func (s OptionalField[T, U]) ID() string
type OptionalType ¶ added in v0.6.0
type OptionalType[T any] struct { // contains filtered or unexported fields }
func Option ¶ added in v0.6.0
func Option[T any](inner Type[T]) OptionalType[T]
type Parser ¶
type Parser[T any] struct { // contains filtered or unexported fields }
func ParserModel ¶
func (*Parser[T]) Array ¶ added in v0.6.0
func (p *Parser[T]) Array(field fieldParser[T]) *Parser[T]
func (*Parser[T]) ParseBytes ¶
func (*Parser[T]) Slice ¶ added in v0.7.0
func (p *Parser[T]) Slice(field fieldParser[T]) *Parser[T]
func (*Parser[T]) SmallVarchar ¶ added in v0.6.0
func (*Parser[T]) Struct ¶ added in v0.6.0
func (p *Parser[T]) Struct(field fieldParser[T]) *Parser[T]
func (*Parser[T]) TimeLocation ¶ added in v0.10.0
type ParserFunc ¶
func ParseStringFactory ¶
func ParseStringFactory() ParserFunc[string]
func ParseUInt16Factory ¶
func ParseUInt16Factory(order binary.ByteOrder) ParserFunc[uint16]
func ParseUInt16HeaderFactory ¶
func ParseUInt16HeaderFactory(order binary.ByteOrder) ParserFunc[int]
type ParserType ¶ added in v0.4.0
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
func (*Pool) Get ¶
Get returns a byte slice of at least the requested size from the pool. The returned slice may be larger than requested. Always use a defer to Put() the slice back when done.
func (*Pool) GetAnyMap ¶
GetAnyMap returns a byte slice of exactly the requested size from a dynamically created pool. This method creates new pools on-demand but limits the total number to MaxPoolMapSize. If the limit is reached, it falls back to GetAny(). Note: Only use this if you need exact sizes and will call PutAnyMap() to return the buffer.
type PoolFactory ¶
func PooledFactory ¶
type SliceType ¶ added in v0.7.0
type SliceType[T any] struct { // contains filtered or unexported fields }
func (SliceType[T]) ByteLength ¶ added in v0.7.0
func (t SliceType[T]) ByteLength() int
type StructType ¶ added in v0.6.1
type StructType[T any] struct { ParserType[T] CompilerType[T] }
func Struct ¶ added in v0.6.1
func Struct[T any](b ModelBuilder[T]) StructType[T]
func StructCo ¶ added in v0.6.1
func StructCo[T any](compiler CompilerType[T]) StructType[T]
func StructPar ¶ added in v0.6.1
func StructPar[T any](parser ParserType[T]) StructType[T]
func StructParco ¶ added in v0.6.1
func StructParco[T any](parser ParserType[T], compiler CompilerType[T]) StructType[T]
func (StructType[T]) ByteLength ¶ added in v0.6.1
func (s StructType[T]) ByteLength() int
type TimeType ¶ added in v0.10.0
type TimeType struct {
// contains filtered or unexported fields
}
func (TimeType) ByteLength ¶ added in v0.10.0
type Type ¶
type Type[T any] interface { // ByteLength represents type byte length for this type. E.g: uint8=1, uint16=2, uint32=4 // For non-fixed types, returns the byte length of the header ByteLength() int ParserType[T] CompilerType[T] }
func Int8Header ¶ added in v0.5.0
func Int8Header() Type[int]
func Int16BEHeader ¶ added in v0.5.0
func Int16BEHeader() Type[int]
func Int16Header ¶ added in v0.5.0
func Int16LEHeader ¶ added in v0.5.0
func Int16LEHeader() Type[int]
func Int32BEHeader ¶ added in v0.5.0
func Int32BEHeader() Type[int]
func Int32Header ¶ added in v0.5.0
func Int32LEHeader ¶ added in v0.5.0
func Int32LEHeader() Type[int]
func Int64BEHeader ¶ added in v0.5.0
func Int64BEHeader() Type[int]
func Int64Header ¶ added in v0.5.0
func Int64LEHeader ¶ added in v0.5.0
func Int64LEHeader() Type[int]
func IntBEHeader ¶ added in v0.5.0
func IntBEHeader() Type[int]
func IntLEHeader ¶ added in v0.5.0
func IntLEHeader() Type[int]
func NewFixedType ¶
func NewFixedType[T any]( byteLength int, parserFunc ParserFunc[T], compilerFunc CompilerFunc[T], ) Type[T]
func NewVarcharType ¶
func NewVarcharType(header IntType) Type[string]
func SkipTypeFactory ¶
func SmallVarchar ¶
func SmallVarchar() Type[string]
func TimeLocation ¶ added in v0.10.0
func UInt8Header ¶
func UInt8Header() Type[int]
func UInt16Header ¶
func UInt16HeaderBE ¶
func UInt16HeaderBE() Type[int]
func UInt16HeaderLE ¶
func UInt16HeaderLE() Type[int]
func UInt32BEHeader ¶ added in v0.5.0
func UInt32BEHeader() Type[int]
func UInt32Header ¶ added in v0.5.0
func UInt32LEHeader ¶ added in v0.5.0
func UInt32LEHeader() Type[int]
func UInt64BEHeader ¶ added in v0.5.0
func UInt64BEHeader() Type[int]
func UInt64Header ¶ added in v0.5.0
func UInt64LEHeader ¶ added in v0.5.0
func UInt64LEHeader() Type[int]
func UIntBEHeader ¶ added in v0.5.0
func UIntBEHeader() Type[int]
func UIntHeader ¶ added in v0.5.0
func UIntLEHeader ¶ added in v0.5.0
func UIntLEHeader() Type[int]
func VarcharOrder ¶
Source Files
¶
- buffer_cursor.go
- errors.go
- factory_pointer.go
- field.go
- field_array.go
- field_fixed.go
- field_map.go
- field_optional.go
- field_slice.go
- field_struct.go
- field_var.go
- parco_builder.go
- parco_builder_multi.go
- parco_compiler.go
- parco_parser.go
- type_array.go
- type_fixed.go
- type_float32.go
- type_float64.go
- type_int.go
- type_map.go
- type_noop.go
- type_optional.go
- type_skip.go
- type_slice.go
- type_struct.go
- type_time.go
- type_uint16.go
- type_uint32.go
- type_uint64.go
- type_uint8.go
- type_var.go
- type_varchar.go
- utils_bytes.go
- utils_helpers.go
- utils_io.go
- utils_nalloc.go
- utils_pool.go
- utils_types.go
Click to show internal directories.
Click to hide internal directories.