// ------------------------------------------------------------------------ // Project atila // Active Thing (activething.com) git.activething.com/go // // File name builder_object.go // Created by DEV // Modified 06/02/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 pjson import ( "apacks" "time" ) func (p *JSONPacker) FieldAny (name string, value any, flags apacks.Flags) { p.addField(name, func() { p.PackAny(value, flags) }) } func (p *JSONPacker) FieldRaw (name string, value []byte, flags apacks.Flags){ p.addField(name, func() { p.PackRaw(value, flags) }) } func (p *JSONPacker) FieldBinary (name string, value []byte, flags apacks.Flags) { p.addField(name, func() { p.PackBinary(value, flags) }) } func (p *JSONPacker) FieldString (name string, value string, flags apacks.Flags) { p.addField(name, func() { p.PackString(value, flags) }) } func (p *JSONPacker) FieldBool (name string, value bool, flags apacks.Flags) { p.addField(name, func() { p.PackBool(value, flags) }) } func (p *JSONPacker) FieldInt8 (name string, value int8 , flags apacks.Flags) { p.addField(name, func() { p.PackInt64(int64(value), flags) })} func (p *JSONPacker) FieldInt16 (name string, value int16, flags apacks.Flags) { p.addField(name, func() { p.PackInt64(int64(value), flags) })} func (p *JSONPacker) FieldInt32 (name string, value int32, flags apacks.Flags) { p.addField(name, func() { p.PackInt64(int64(value), flags) }) } func (p *JSONPacker) FieldInt64 (name string, value int64, flags apacks.Flags) { p.addField(name, func() { p.PackInt64(value, flags) }) } func (p *JSONPacker) FieldUInt8 (name string, value uint8, flags apacks.Flags) { p.addField(name, func() { p.PackUInt64(uint64(value), flags) }) } func (p *JSONPacker) FieldUInt16 (name string, value uint16, flags apacks.Flags) { p.addField(name,func(){ p.PackUInt64(uint64(value), flags) }) } func (p *JSONPacker) FieldUInt32 (name string, value uint32, flags apacks.Flags) { p.addField(name,func(){ p.PackUInt64(uint64(value), flags) }) } func (p *JSONPacker) FieldUInt64 (name string, value uint64, flags apacks.Flags) { p.addField(name,func(){ p.PackUInt64(value, flags) }) } func (p *JSONPacker) FieldFloat32(name string, value float32,flags apacks.Flags) { p.addField(name,func(){ p.PackFloat32(value, flags) }) } func (p *JSONPacker) FieldFloat64(name string, value float64,flags apacks.Flags) { p.addField(name,func(){ p.PackFloat64(value, flags) }) } func (p *JSONPacker) FieldDate (name string, value time.Time,flags apacks.Flags) { p.addField(name,func(){ p.PackDate(value, flags) }) } func (p *JSONPacker) FieldList (name string, builder func(apacks.ListPackBuilder, apacks.Flags), flags apacks.Flags) { p.addField(name,func(){ p.PackList(builder, flags) }) } func (p *JSONPacker) FieldMap (name string, builder func(apacks.MapPackBuilder, apacks.Flags), flags apacks.Flags) { p.addField(name,func(){ p.PackMap(builder, flags) }) } func (p *JSONPacker) FieldObject (name string, builder func(apacks.ObjectPackBuilder, apacks.Flags), flags apacks.Flags) { p.addField(name,func(){ p.PackObject(builder, flags) }) } func (p *JSONPacker) addField(name string, caller func()) { if p.state.Count() > 0 { p.state.WriteByte(',') } packString(p.state,name, apacks.FlagScapeHTML) if p.state.Error != nil { return } p.state.WriteByte(':') caller() if p.state != nil { p.state.Inc() } }