// ------------------------------------------------------------------------ // Project atila // Active Thing (activething.com) git.activething.com/go // // File name packer.go // Created by DEV // Modified 23/01/2024 // // Copyright 2024 activething.com // ------------------------------------------------------------------------ // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ------------------------------------------------------------------------ package packs import "time" type ( Packer interface { Pack (value any, flags Flags) ([]byte,error) PackAny (value any, flags Flags) PackRaw (value []byte, flags Flags) PackBinary (value []byte, flags Flags) PackString (value string, flags Flags) PackBool (value bool, flags Flags) PackInt8 (value int8, flags Flags) PackInt16 (value int16, flags Flags) PackInt32 (value int32, flags Flags) PackInt64 (value int64, flags Flags) PackUInt8 (value uint8 , flags Flags) PackUInt16 (value uint16, flags Flags) PackUInt32 (value uint32, flags Flags) PackUInt64 (value uint64, flags Flags) PackFloat32 (value float32, flags Flags) PackFloat64 (value float64, flags Flags) PackDate (value time.Time, flags Flags) PackList (builder func(packer ListPacker , flags Flags)) PackMap (builder func(packer MapPacker , flags Flags)) PackObject(builder func(packer ObjectPacker, flags Flags)) } )