From 0ce1d3e727ea347c3588f96be8a356fa6ea3bc0e Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 10 Feb 2023 19:58:52 -0700 Subject: tree-wide: Update various references from Go 1.18 to Go 1.20 --- encode.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'encode.go') diff --git a/encode.go b/encode.go index 2d16891..2830ace 100644 --- a/encode.go +++ b/encode.go @@ -78,7 +78,7 @@ func NewEncoder(w io.Writer) *Encoder { // may write partial output, whereas encodin/json would not have // written anything. // -// [documentation for encoding/json.Marshal]: https://pkg.go.dev/encoding/json@go1.18#Marshal +// [documentation for encoding/json.Marshal]: https://pkg.go.dev/encoding/json@go1.20#Marshal func (enc *Encoder) Encode(obj any) (err error) { if enc.isRoot { enc.w.par.Reset() -- cgit v1.2.3-2-g168b From 1f0abce0bf4061261572f6ed2f815f71647cc7e5 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 10 Feb 2023 15:48:28 -0700 Subject: encode: Begone with encodeTODO --- encode.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'encode.go') diff --git a/encode.go b/encode.go index 2830ace..492b40f 100644 --- a/encode.go +++ b/encode.go @@ -246,13 +246,27 @@ func encode(w *ReEncoder, val reflect.Value, escaper BackslashEscaper, quote boo return err } } - case reflect.Float32, reflect.Float64: + case reflect.Float32: if quote { if err := w.WriteByte('"'); err != nil { return err } } - if err := encodeTODO(w, val); err != nil { + if err := encodeFloat(w, 32, val); err != nil { + return err + } + if quote { + if err := w.WriteByte('"'); err != nil { + return err + } + } + case reflect.Float64: + if quote { + if err := w.WriteByte('"'); err != nil { + return err + } + } + if err := encodeFloat(w, 64, val); err != nil { return err } if quote { @@ -522,14 +536,3 @@ func encodeArray(w *ReEncoder, val reflect.Value, escaper BackslashEscaper, cycl } return nil } - -func encodeTODO(w io.Writer, val reflect.Value) error { - bs, err := json.Marshal(val.Interface()) - if err != nil { - return err - } - if _, err := w.Write(bs); err != nil { - return err - } - return nil -} -- cgit v1.2.3-2-g168b From 04daa09e1911d7bdabe87e452200b2de2c5ca7c9 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 10 Feb 2023 15:27:46 -0700 Subject: Be more careful about importing encoding/json --- encode.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'encode.go') diff --git a/encode.go b/encode.go index 492b40f..b6541cd 100644 --- a/encode.go +++ b/encode.go @@ -8,7 +8,6 @@ import ( "bytes" "encoding" "encoding/base64" - "encoding/json" "fmt" "io" "reflect" @@ -96,12 +95,6 @@ func discardInt(_ int, err error) error { return err } -var ( - encodableType = reflect.TypeOf((*Encodable)(nil)).Elem() - jsonMarshalerType = reflect.TypeOf((*json.Marshaler)(nil)).Elem() - textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() -) - const startDetectingCyclesAfter = 1000 func encode(w *ReEncoder, val reflect.Value, escaper BackslashEscaper, quote bool, cycleDepth uint, cycleSeen map[any]struct{}) error { @@ -145,7 +138,7 @@ func encode(w *ReEncoder, val reflect.Value, escaper BackslashEscaper, quote boo if val.Kind() == reflect.Pointer && val.IsNil() { return discardInt(w.WriteString("null")) } - obj, ok := val.Interface().(json.Marshaler) + obj, ok := val.Interface().(jsonMarshaler) if !ok { return discardInt(w.WriteString("null")) } -- cgit v1.2.3-2-g168b