Skip to content

Commit aad63bc

Browse files
committed
stop exporting jsoniter based apis
see: kubernetes-sigs#202
1 parent dda5e3a commit aad63bc

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

Diff for: fieldpath/serialize-pe.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,25 @@ var (
5454
peSepBytes = []byte(peSeparator)
5555
)
5656

57+
// DO NOT EXPORT
58+
// readJSONIter reads a Value from a JSON iterator.
59+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
60+
func readJSONIter(iter *jsoniter.Iterator) (value.Value, error) {
61+
v := iter.Read()
62+
if iter.Error != nil && iter.Error != io.EOF {
63+
return nil, iter.Error
64+
}
65+
return value.NewValueInterface(v), nil
66+
}
67+
68+
// DO NOT EXPORT
69+
70+
// writeJSONStream writes a value into a JSON stream.
71+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
72+
func writeJSONStream(v value.Value, stream *jsoniter.Stream) {
73+
stream.WriteVal(v.Unstructured())
74+
}
75+
5776
// DeserializePathElement parses a serialized path element
5877
func DeserializePathElement(s string) (PathElement, error) {
5978
b := []byte(s)
@@ -75,7 +94,7 @@ func DeserializePathElement(s string) (PathElement, error) {
7594
case peValueSepBytes[0]:
7695
iter := readPool.BorrowIterator(b)
7796
defer readPool.ReturnIterator(iter)
78-
v, err := value.ReadJSONIter(iter)
97+
v, err := readJSONIter(iter)
7998
if err != nil {
8099
return PathElement{}, err
81100
}
@@ -86,7 +105,7 @@ func DeserializePathElement(s string) (PathElement, error) {
86105
fields := value.FieldList{}
87106

88107
iter.ReadObjectCB(func(iter *jsoniter.Iterator, key string) bool {
89-
v, err := value.ReadJSONIter(iter)
108+
v, err := readJSONIter(iter)
90109
if err != nil {
91110
iter.Error = err
92111
return false
@@ -141,14 +160,14 @@ func serializePathElementToWriter(w io.Writer, pe PathElement) error {
141160
stream.WriteMore()
142161
}
143162
stream.WriteObjectField(field.Name)
144-
value.WriteJSONStream(field.Value, stream)
163+
writeJSONStream(field.Value, stream)
145164
}
146165
stream.WriteObjectEnd()
147166
case pe.Value != nil:
148167
if _, err := stream.Write(peValueSepBytes); err != nil {
149168
return err
150169
}
151-
value.WriteJSONStream(*pe.Value, stream)
170+
writeJSONStream(*pe.Value, stream)
152171
case pe.Index != nil:
153172
if _, err := stream.Write(peIndexSepBytes); err != nil {
154173
return err

Diff for: value/value.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"strings"
2424

2525
jsoniter "github.com/json-iterator/go"
26+
2627
yaml "sigs.k8s.io/yaml/goyaml.v2"
2728
)
2829

@@ -90,15 +91,15 @@ func FromJSON(input []byte) (Value, error) {
9091
func FromJSONFast(input []byte) (Value, error) {
9192
iter := readPool.BorrowIterator(input)
9293
defer readPool.ReturnIterator(iter)
93-
return ReadJSONIter(iter)
94+
return readJSONIter(iter)
9495
}
9596

9697
// ToJSON is a helper function for producing a JSon document.
9798
func ToJSON(v Value) ([]byte, error) {
9899
buf := bytes.Buffer{}
99100
stream := writePool.BorrowStream(&buf)
100101
defer writePool.ReturnStream(stream)
101-
WriteJSONStream(v, stream)
102+
writeJSONStream(v, stream)
102103
b := stream.Buffer()
103104
err := stream.Flush()
104105
// Help jsoniter manage its buffers--without this, the next
@@ -109,17 +110,22 @@ func ToJSON(v Value) ([]byte, error) {
109110
return buf.Bytes(), err
110111
}
111112

112-
// ReadJSONIter reads a Value from a JSON iterator.
113-
func ReadJSONIter(iter *jsoniter.Iterator) (Value, error) {
113+
// DO NOT EXPORT
114+
// readJSONIter reads a Value from a JSON iterator.
115+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
116+
func readJSONIter(iter *jsoniter.Iterator) (Value, error) {
114117
v := iter.Read()
115118
if iter.Error != nil && iter.Error != io.EOF {
116119
return nil, iter.Error
117120
}
118121
return NewValueInterface(v), nil
119122
}
120123

121-
// WriteJSONStream writes a value into a JSON stream.
122-
func WriteJSONStream(v Value, stream *jsoniter.Stream) {
124+
// DO NOT EXPORT
125+
126+
// writeJSONStream writes a value into a JSON stream.
127+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
128+
func writeJSONStream(v Value, stream *jsoniter.Stream) {
123129
stream.WriteVal(v.Unstructured())
124130
}
125131

0 commit comments

Comments
 (0)