diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-10 21:35:06 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-10 21:48:22 -0700 |
commit | ddffd7b78d81f1b47b5829eb9ff0aa1887cc3b17 (patch) | |
tree | 7733466fac856d93bfb6d6100fd703830a915567 | |
parent | 3516254a492758dd414b271b85a1603fd53cebad (diff) |
Use go:linkname instead of the awful internal/jsontest package
-rw-r--r-- | compat/json/compat_test.go | 17 | ||||
-rw-r--r-- | encode_string.go | 14 | ||||
-rw-r--r-- | internal/jsontest/jsontest.go | 14 |
3 files changed, 14 insertions, 31 deletions
diff --git a/compat/json/compat_test.go b/compat/json/compat_test.go index 9e4e1cf..07c75bc 100644 --- a/compat/json/compat_test.go +++ b/compat/json/compat_test.go @@ -8,11 +8,12 @@ import ( "bytes" "encoding/json" "io" + _ "unsafe" "git.lukeshu.com/go/lowmemjson" + "git.lukeshu.com/go/lowmemjson/internal/fastio" "git.lukeshu.com/go/lowmemjson/internal/jsonparse" "git.lukeshu.com/go/lowmemjson/internal/jsonstruct" - "git.lukeshu.com/go/lowmemjson/internal/jsontest" ) var ( @@ -57,12 +58,22 @@ type encodeState struct { bytes.Buffer } +//go:linkname encodeStringFromString git.lukeshu.com/go/lowmemjson.encodeStringFromString +func encodeStringFromString(w fastio.AllWriter, escaper lowmemjson.BackslashEscaper, str string) error + +//go:linkname encodeStringFromBytes git.lukeshu.com/go/lowmemjson.encodeStringFromBytes +func encodeStringFromBytes(w fastio.AllWriter, escaper lowmemjson.BackslashEscaper, str []byte) error + func (es *encodeState) string(str string, _ bool) { - jsontest.EncodeStringFromString(&es.Buffer, str) + if err := encodeStringFromString(&es.Buffer, nil, str); err != nil { + panic(err) + } } func (es *encodeState) stringBytes(str []byte, _ bool) { - jsontest.EncodeStringFromBytes(&es.Buffer, str) + if err := encodeStringFromBytes(&es.Buffer, nil, str); err != nil { + panic(err) + } } type ( diff --git a/encode_string.go b/encode_string.go index a5d6633..328b07a 100644 --- a/encode_string.go +++ b/encode_string.go @@ -10,7 +10,6 @@ import ( "git.lukeshu.com/go/lowmemjson/internal/fastio" "git.lukeshu.com/go/lowmemjson/internal/jsonparse" - "git.lukeshu.com/go/lowmemjson/internal/jsontest" ) func writeStringUnicodeEscape(w io.Writer, c rune) (int, error) { @@ -116,16 +115,3 @@ func encodeStringFromBytes(w fastio.AllWriter, escaper BackslashEscaper, str []b } return nil } - -func init() { - jsontest.EncodeStringFromString = func(w io.Writer, s string) { - if err := encodeStringFromString(fastio.NewAllWriter(w), nil, s); err != nil { - panic(err) - } - } - jsontest.EncodeStringFromBytes = func(w io.Writer, s []byte) { - if err := encodeStringFromBytes(fastio.NewAllWriter(w), nil, s); err != nil { - panic(err) - } - } -} diff --git a/internal/jsontest/jsontest.go b/internal/jsontest/jsontest.go deleted file mode 100644 index fbc775d..0000000 --- a/internal/jsontest/jsontest.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com> -// -// SPDX-License-Identifier: GPL-2.0-or-later - -package jsontest - -import ( - "io" -) - -var ( - EncodeStringFromBytes func(io.Writer, []byte) - EncodeStringFromString func(io.Writer, string) -) |