diff options
| author | 2025-04-14 09:43:56 +0200 | |
|---|---|---|
| committer | 2025-04-14 09:43:56 +0200 | |
| commit | 51b9ef5c346f333e558eca38fd954464322f3b7d (patch) | |
| tree | bf5cd0de887a27c1afc66345b1a464921d96e503 /vendor/github.com/bytedance/sonic/internal/resolver/resolver.go | |
| parent | [docs] Remind the user that password resets don't work without restarting. (#... (diff) | |
| download | gotosocial-51b9ef5c346f333e558eca38fd954464322f3b7d.tar.xz | |
[chore]: Bump github.com/gin-contrib/gzip from 1.2.2 to 1.2.3 (#4000)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/gin-contrib/gzip/releases)
- [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/gzip/compare/v1.2.2...v1.2.3)
---
updated-dependencies:
- dependency-name: github.com/gin-contrib/gzip
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/resolver/resolver.go')
| -rw-r--r-- | vendor/github.com/bytedance/sonic/internal/resolver/resolver.go | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go b/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go index 795434f4e..1c30ad113 100644 --- a/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go +++ b/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go @@ -17,10 +17,10 @@ package resolver import ( - `fmt` - `reflect` - `strings` - `sync` + "fmt" + "reflect" + "strings" + "sync" ) type FieldOpts int @@ -29,6 +29,7 @@ type OffsetType int const ( F_omitempty FieldOpts = 1 << iota F_stringize + F_omitzero ) const ( @@ -47,6 +48,7 @@ type FieldMeta struct { Path []Offset Opts FieldOpts Type reflect.Type + IsZero func(reflect.Value) bool } func (self *FieldMeta) String() string { @@ -117,20 +119,26 @@ func resolveFields(vt reflect.Type) []FieldMeta { /* convert each field */ for _, fv := range tfv.list { + /* add to result */ + ret = append(ret, FieldMeta{}) + fm := &ret[len(ret)-1] + item := vt path := []Offset(nil) - opts := FieldOpts(0) /* check for "string" */ if fv.quoted { - opts |= F_stringize + fm.Opts |= F_stringize } /* check for "omitempty" */ if fv.omitEmpty { - opts |= F_omitempty + fm.Opts |= F_omitempty } + /* handle the "omitzero" */ + handleOmitZero(fv, fm) + /* dump the field path */ for _, i := range fv.index { kind := F_offset @@ -161,13 +169,9 @@ func resolveFields(vt reflect.Type) []FieldMeta { path[idx].Kind = F_offset } - /* add to result */ - ret = append(ret, FieldMeta { - Type: fvt, - Opts: opts, - Path: path, - Name: fv.name, - }) + fm.Type = fvt + fm.Path = path + fm.Name = fv.name } /* optimize the offsets */ |
