diff options
Diffstat (limited to 'vendor/github.com/goccy/go-json/option.go')
-rw-r--r-- | vendor/github.com/goccy/go-json/option.go | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/vendor/github.com/goccy/go-json/option.go b/vendor/github.com/goccy/go-json/option.go index 6837a4b1b..ad6509183 100644 --- a/vendor/github.com/goccy/go-json/option.go +++ b/vendor/github.com/goccy/go-json/option.go @@ -1,15 +1,46 @@ package json -type EncodeOptionFunc func(EncodeOption) EncodeOption +import ( + "github.com/goccy/go-json/internal/decoder" + "github.com/goccy/go-json/internal/encoder" +) -func UnorderedMap() func(EncodeOption) EncodeOption { - return func(opt EncodeOption) EncodeOption { - return opt | EncodeOptionUnorderedMap +type EncodeOption = encoder.Option +type EncodeOptionFunc func(*EncodeOption) + +// UnorderedMap doesn't sort when encoding map type. +func UnorderedMap() EncodeOptionFunc { + return func(opt *EncodeOption) { + opt.Flag |= encoder.UnorderedMapOption + } +} + +// Debug outputs debug information when panic occurs during encoding. +func Debug() EncodeOptionFunc { + return func(opt *EncodeOption) { + opt.Flag |= encoder.DebugOption } } -func Debug() func(EncodeOption) EncodeOption { - return func(opt EncodeOption) EncodeOption { - return opt | EncodeOptionDebug +// Colorize add an identifier for coloring to the string of the encoded result. +func Colorize(scheme *ColorScheme) EncodeOptionFunc { + return func(opt *EncodeOption) { + opt.Flag |= encoder.ColorizeOption + opt.ColorScheme = scheme + } +} + +type DecodeOption = decoder.Option +type DecodeOptionFunc func(*DecodeOption) + +// DecodeFieldPriorityFirstWin +// in the default behavior, go-json, like encoding/json, +// will reflect the result of the last evaluation when a field with the same name exists. +// This option allow you to change this behavior. +// this option reflects the result of the first evaluation if a field with the same name exists. +// This behavior has a performance advantage as it allows the subsequent strings to be skipped if all fields have been evaluated. +func DecodeFieldPriorityFirstWin() DecodeOptionFunc { + return func(opt *DecodeOption) { + opt.Flags |= decoder.FirstWinOption } } |