diff --git a/cmd/jsontoml/main.go b/cmd/jsontoml/main.go index d592e46d..eb7369e6 100644 --- a/cmd/jsontoml/main.go +++ b/cmd/jsontoml/main.go @@ -54,7 +54,7 @@ func convert(r io.Reader, w io.Writer) error { if useNumber != nil && *useNumber { d.UseNumber() - e.SetJsonNumber(true) + e.SetMarshalJsonNumbers(true) } err := d.Decode(&v) diff --git a/marshaler.go b/marshaler.go index 8be595f2..31f593e2 100644 --- a/marshaler.go +++ b/marshaler.go @@ -38,11 +38,11 @@ type Encoder struct { w io.Writer // global settings - tablesInline bool - arraysMultiline bool - indentSymbol string - indentTables bool - jsonNumber bool + tablesInline bool + arraysMultiline bool + indentSymbol string + indentTables bool + marshalJsonNumbers bool } // NewEncoder returns a new Encoder that writes to w. @@ -89,10 +89,10 @@ func (enc *Encoder) SetIndentTables(indent bool) *Encoder { return enc } -// SetJsonNumber forces the encoder to serialize `json.Number` as a float or integer +// SetMarshalJsonNumbers forces the encoder to serialize `json.Number` as a float or integer // instead of relying on TextMarshaler to emit a string. -func (enc *Encoder) SetJsonNumber(indent bool) *Encoder { - enc.jsonNumber = indent +func (enc *Encoder) SetMarshalJsonNumbers(indent bool) *Encoder { + enc.marshalJsonNumbers = indent return enc } @@ -262,7 +262,7 @@ func (enc *Encoder) encode(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, e case LocalDateTime: return append(b, x.String()...), nil case json.Number: - if enc.jsonNumber { + if enc.marshalJsonNumbers { if x == "" { /// Useful zero value. return append(b, "0"...), nil } else if v, err := x.Int64(); err == nil { diff --git a/marshaler_test.go b/marshaler_test.go index deb1b7bd..a31dd370 100644 --- a/marshaler_test.go +++ b/marshaler_test.go @@ -951,7 +951,7 @@ func TestEncoderSetIndentSymbol(t *testing.T) { func TestEncoderSetJsonNumber(t *testing.T) { var w strings.Builder enc := toml.NewEncoder(&w) - enc.SetJsonNumber(true) + enc.SetMarshalJsonNumbers(true) err := enc.Encode(map[string]interface{}{ "A": json.Number("1.1"), "B": json.Number("42e-3"),