From 128959707364340c942399283b15b5025d9aaa70 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 31 Jul 2022 00:29:12 -0600 Subject: Integrate reencoding in to the tests --- lib/lowmemjson/adapter_test.go | 19 +-- lib/lowmemjson/borrowed_tables.go | 115 ------------------ lib/lowmemjson/encode.go | 235 +++++++++++------------------------- lib/lowmemjson/misc.go | 130 ++++++++++++++++++++ lib/lowmemjson/reencode.go | 247 +++++++++++++++++--------------------- 5 files changed, 321 insertions(+), 425 deletions(-) delete mode 100644 lib/lowmemjson/borrowed_tables.go create mode 100644 lib/lowmemjson/misc.go diff --git a/lib/lowmemjson/adapter_test.go b/lib/lowmemjson/adapter_test.go index fd300e4..7c08459 100644 --- a/lib/lowmemjson/adapter_test.go +++ b/lib/lowmemjson/adapter_test.go @@ -27,18 +27,23 @@ var ( func MarshalIndent(v any, prefix, indent string) ([]byte, error) { var buf bytes.Buffer - err := Encode(&buf, v, prefix, indent) + formatter := &ReEncoder{ + Out: &buf, + Indent: indent, + prefix: prefix, + } + err := Encode(formatter, v) return buf.Bytes(), err } func Marshal(v any) ([]byte, error) { - big, err := MarshalIndent(v, "", "") - if err != nil { - return nil, err + var buf bytes.Buffer + formatter := &ReEncoder{ + Out: &buf, + Compact: true, } - var small bytes.Buffer - err = json.Compact(&small, big) - return small.Bytes(), err + err := Encode(formatter, v) + return buf.Bytes(), err } var Unmarshal = json.Unmarshal // TODO diff --git a/lib/lowmemjson/borrowed_tables.go b/lib/lowmemjson/borrowed_tables.go deleted file mode 100644 index 5c26148..0000000 --- a/lib/lowmemjson/borrowed_tables.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package lowmemjson - -import "unicode/utf8" - -const hex = "0123456789abcdef" - -// htmlSafeSet holds the value true if the ASCII character with the given -// array position can be safely represented inside a JSON string, embedded -// inside of HTML