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