From 5c35fe05553dd7fc7cf09952c7aa800459f4c552 Mon Sep 17 00:00:00 2001 From: DEV Date: Thu, 30 May 2024 01:32:14 +0200 Subject: [PATCH] restructurando el codigo para actualizar los packs con la nueva arquitectura del builder --- base/apack/pkj/builder.go | 18 +++++++----------- base/apack/pkj/packers.go | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/base/apack/pkj/builder.go b/base/apack/pkj/builder.go index b3ee19b..c68ce5c 100644 --- a/base/apack/pkj/builder.go +++ b/base/apack/pkj/builder.go @@ -63,7 +63,11 @@ func (b *Builder) Pack (value any) rsls.Bytes { func (b *Builder) Any (value any) { if value == nil { - b.null() + if !b.preValue() { + return + } + b.B.W(cjson.G.NullValue) + b.postValue() return } @@ -205,11 +209,11 @@ func (b *Builder) Any (value any) { }) case reflect.Value: - packReflected(v.Type())(b,v) + g.rpackers.getRPacker(v.Type())(b,v) default: rv := reflect.ValueOf(value) - packReflected(rv.Type())(b,rv) + g.rpackers.getRPacker(rv.Type())(b,rv) } @@ -337,14 +341,6 @@ func (b *Builder) Marshaller (value json.Marshaler) { } -func (b *Builder) null () { - if !b.preValue() { - return - } - b.B.W(cjson.G.NullValue) - b.postValue() -} - func (b *Builder) writeString (value string, flags apack.Flags) { if len(value) == 0 { diff --git a/base/apack/pkj/packers.go b/base/apack/pkj/packers.go index 5d4e1ad..2d2e0d4 100644 --- a/base/apack/pkj/packers.go +++ b/base/apack/pkj/packers.go @@ -25,6 +25,7 @@ package pkj import ( + "apack" "blds" "cdcs/cjson" "encoding/json" @@ -147,11 +148,24 @@ func (p *rpackers) buildRPacker (rtype reflect.Type) rPackFnc { return } b.B.W(cjson.G.NullValue) + b.postValue() return } - packReflected(v.Elem().Type())(b,v.Elem()) + p.getRPacker(v.Elem().Type())(b,v.Elem()) } + case reflect.Slice, + reflect.Array : + + case reflect.Map : + + case reflect.Struct : + + default: + + return func(b *Builder, v reflect.Value) { + b.SetError(apack.G.ErrInvalidValue) } + } }