From 643cbc4d6e37d07619bec05039da1abb411d28d4 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 7 Feb 2023 12:45:46 -0700 Subject: Move struct-handling to internal/jsonstruct --- decode.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'decode.go') diff --git a/decode.go b/decode.go index 3a9a4b1..487bce4 100644 --- a/decode.go +++ b/decode.go @@ -26,6 +26,7 @@ import ( "git.lukeshu.com/go/lowmemjson/internal/base64dec" "git.lukeshu.com/go/lowmemjson/internal/fastio" "git.lukeshu.com/go/lowmemjson/internal/jsonparse" + "git.lukeshu.com/go/lowmemjson/internal/jsonstruct" ) // Decodable is the interface implemented by types that can decode a @@ -532,7 +533,7 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { dec.decodeNull() return } - index := indexStruct(typ) + index := jsonstruct.IndexStruct(typ) var nameBuf strings.Builder dec.decodeObject(typ, func() { dec.posStackPush() @@ -545,10 +546,10 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { name := nameBuf.String() dec.structStackPush(typ, name) defer dec.structStackPop() - idx, ok := index.byName[name] + idx, ok := index.ByName[name] if !ok { - for oidx := range index.byPos { - if strings.EqualFold(name, index.byPos[oidx].Name) { + for oidx := range index.ByPos { + if strings.EqualFold(name, index.ByPos[oidx].Name) { idx = oidx ok = true break @@ -562,7 +563,7 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { dec.scan(fastio.Discard) return } - field := index.byPos[idx] + field := index.ByPos[idx] fVal := val for _, idx := range field.Path { if fVal.Kind() == reflect.Pointer { -- cgit v1.2.3-2-g168b