From e483afa206686ce748ad270140f99fad9d713aad Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 25 Jan 2023 23:11:06 -0700 Subject: Delete things I don't want to document --- compat/json/compat.go | 4 ++-- decode.go | 12 ++---------- decode_test.go | 6 +++--- encode.go | 15 +-------------- encode_test.go | 12 ++++++------ methods_test.go | 20 ++++++++++---------- misc.go | 4 +--- 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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 +// Copyright (C) 2022-2023 Luke Shumaker // // 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) { -- cgit v1.2.3-2-g168b