You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
active/apacks/pkjson/object_pack_builder.go

114 lines
4.1 KiB

// ------------------------------------------------------------------------
// 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 pkjson
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()
}
}

Powered by TurnKey Linux.