summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-01-25 23:11:06 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-01-25 23:20:18 -0700
commite483afa206686ce748ad270140f99fad9d713aad (patch)
tree2f65755ece7059579e902132cf0e44cb0fbbb0d6
parentf834aaeb56b929ed06e0545a589b7dd82b4602d3 (diff)
Delete things I don't want to document
-rw-r--r--compat/json/compat.go4
-rw-r--r--decode.go12
-rw-r--r--decode_test.go6
-rw-r--r--encode.go15
-rw-r--r--encode_test.go12
-rw-r--r--methods_test.go20
-rw-r--r--misc.go4
7 files changed, 25 insertions, 48 deletions
diff --git a/compat/json/compat.go b/compat/json/compat.go
index fc693f8..f8b23e3 100644
--- a/compat/json/compat.go
+++ b/compat/json/compat.go
@@ -50,7 +50,7 @@ func convertEncodeError(err error) error {
func marshal(v any, formatter *lowmemjson.ReEncoder) ([]byte, error) {
var buf bytes.Buffer
formatter.Out = &buf
- if err := convertEncodeError(lowmemjson.Encode(formatter, v)); err != nil {
+ if err := convertEncodeError(lowmemjson.NewEncoder(formatter).Encode(v)); err != nil {
return nil, err
}
return buf.Bytes(), nil
@@ -213,7 +213,7 @@ func convertDecodeError(err error) error {
}
func Unmarshal(data []byte, ptr any) error {
- return convertDecodeError(lowmemjson.DecodeThenEOF(bytes.NewReader(data), ptr))
+ return convertDecodeError(lowmemjson.NewDecoder(bytes.NewReader(data)).DecodeThenEOF(ptr))
}
type Decoder struct {
diff --git a/decode.go b/decode.go
index fbf2373..fb94ba8 100644
--- a/decode.go
+++ b/decode.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -103,14 +103,6 @@ func (dec *Decoder) stackName() string {
return strings.Join(fields, ".")
}
-func Decode(r io.RuneScanner, ptr any) error {
- return NewDecoder(r).Decode(ptr)
-}
-
-func DecodeThenEOF(r io.RuneScanner, ptr any) error {
- return NewDecoder(r).DecodeThenEOF(ptr)
-}
-
// DecodeThenEOF is like decode, but emits an error if there is extra
// data after the JSON.
func (dec *Decoder) DecodeThenEOF(ptr any) (err error) {
@@ -494,7 +486,7 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) {
// TODO: Figure out how to do this without buffering, have correct offsets.
var buf bytes.Buffer
dec.decodeString(nil, &buf)
- if err := Decode(bytes.NewReader(buf.Bytes()), fVal.Addr().Interface()); err != nil {
+ if err := NewDecoder(bytes.NewReader(buf.Bytes())).Decode(fVal.Addr().Interface()); err != nil {
if str := buf.String(); str != "null" {
dec.panicType("", fVal.Type(),
fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",
diff --git a/decode_test.go b/decode_test.go
index a9e81e0..90729fa 100644
--- a/decode_test.go
+++ b/decode_test.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -16,7 +16,7 @@ func TestDecodeNumber(t *testing.T) {
r := strings.NewReader(`1{}`)
var num int
- assert.NoError(t, Decode(r, &num))
+ assert.NoError(t, NewDecoder(r).Decode(&num))
assert.Equal(t, 1, num)
assert.Equal(t, 2, r.Len()) // check that it didn't read too far
}
@@ -28,7 +28,7 @@ func TestDecodeObject(t *testing.T) {
},
func(r io.RuneScanner) error {
var n int
- return Decode(r, &n)
+ return NewDecoder(r).Decode(&n)
})
assert.ErrorContains(t, err, "did not consume entire")
}
diff --git a/encode.go b/encode.go
index acef214..85584ef 100644
--- a/encode.go
+++ b/encode.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -82,19 +82,6 @@ func (enc *Encoder) Encode(obj any) (err error) {
return nil
}
-// Encode encodes a value to w.
-//
-// If w is an *ReEncoder, then the inner backslash-escaping of
-// double-encoded ",string" tagged string values obeys the
-// *ReEncoder's BackslashEscape policy.
-//
-// Does not write a trailing newline or other whitespace; if you will
-// be encoding multiple values to w, then you should instead use an
-// *Encoder object, as some JSON values need whitespace between them.
-func Encode(w io.Writer, obj any) (err error) {
- return NewEncoder(w).Encode(obj)
-}
-
var (
encodableType = reflect.TypeOf((*Encodable)(nil)).Elem()
jsonMarshalerType = reflect.TypeOf((*json.Marshaler)(nil)).Elem()
diff --git a/encode_test.go b/encode_test.go
index 05770c7..bb09c4d 100644
--- a/encode_test.go
+++ b/encode_test.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -43,10 +43,10 @@ func TestEncoderIndent(t *testing.T) {
func TestEncode(t *testing.T) {
var out strings.Builder
- assert.NoError(t, Encode(&out, 1))
- assert.NoError(t, Encode(&out, 1))
- assert.NoError(t, Encode(&out, struct{}{}))
- assert.NoError(t, Encode(&out, nil))
- assert.NoError(t, Encode(&out, 1))
+ assert.NoError(t, NewEncoder(&out).Encode(1))
+ assert.NoError(t, NewEncoder(&out).Encode(1))
+ assert.NoError(t, NewEncoder(&out).Encode(struct{}{}))
+ assert.NoError(t, NewEncoder(&out).Encode(nil))
+ assert.NoError(t, NewEncoder(&out).Encode(1))
assert.Equal(t, "11{}null1", out.String())
}
diff --git a/methods_test.go b/methods_test.go
index a74532c..3a5254f 100644
--- a/methods_test.go
+++ b/methods_test.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -18,8 +18,8 @@ import (
type ShortSum string
func (s ShortSum) EncodeJSON(w io.Writer) error {
- // Test that it's OK to call lowmemjson.Encode for the top-level value in a method.
- return lowmemjson.Encode(w, string(s))
+ // Test that it's OK to call lowmemjson.Encoder.Encode for the top-level value in a method.
+ return lowmemjson.NewEncoder(w).Encode(string(s))
}
type SumRun struct {
@@ -50,7 +50,7 @@ func (sg SumRunWithGaps) EncodeJSON(w io.Writer) error {
return err
}
}
- if err := lowmemjson.Encode(w, run); err != nil {
+ if err := lowmemjson.NewEncoder(w).Encode(run); err != nil {
return err
}
}
@@ -74,18 +74,18 @@ func (sg *SumRunWithGaps) DecodeJSON(r io.RuneScanner) error {
var name string
return lowmemjson.DecodeObject(r,
func(r io.RuneScanner) error {
- return lowmemjson.Decode(r, &name)
+ return lowmemjson.NewDecoder(r).Decode(&name)
},
func(r io.RuneScanner) error {
switch name {
case "Addr":
- return lowmemjson.Decode(r, &sg.Addr)
+ return lowmemjson.NewDecoder(r).Decode(&sg.Addr)
case "Size":
- return lowmemjson.Decode(r, &sg.Size)
+ return lowmemjson.NewDecoder(r).Decode(&sg.Size)
case "Runs":
return lowmemjson.DecodeArray(r, func(r io.RuneScanner) error {
var run SumRun
- if err := lowmemjson.Decode(r, &run); err != nil {
+ if err := lowmemjson.NewDecoder(r).Decode(&run); err != nil {
return err
}
if run.ChecksumSize > 0 {
@@ -112,11 +112,11 @@ func TestMethods(t *testing.T) {
},
}
var buf bytes.Buffer
- assert.NoError(t, lowmemjson.Encode(&buf, in))
+ assert.NoError(t, lowmemjson.NewEncoder(&buf).Encode(in))
assert.Equal(t,
`{"Addr":13631488,"Size":416033783808,"Runs":[{"Gap":1082130432},{"ChecksumSize":4,"Addr":1095761920,"Sums":"c160817cb5c72bbbe"},{"Gap":416033783808}]}`,
buf.String())
var out SumRunWithGaps
- assert.NoError(t, lowmemjson.Decode(&buf, &out))
+ assert.NoError(t, lowmemjson.NewDecoder(&buf).Decode(&out))
assert.Equal(t, in, out)
}
diff --git a/misc.go b/misc.go
index 84d2ae1..89b38a2 100644
--- a/misc.go
+++ b/misc.go
@@ -1,4 +1,4 @@
-// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -11,8 +11,6 @@ import (
"unicode/utf8"
)
-const Tab = "\t"
-
const hex = "0123456789abcdef"
func hex2int[T interface{ byte | rune }](c T) (byte, bool) {