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/core/packs/pjson/object_pack_builder.go

114 lines
4.0 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 pjson
import (
"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()
}
}

Powered by TurnKey Linux.