Skip to content

Commit 0957b10

Browse files
committed
stop exporting jsoniter based apis
see: #202
1 parent dda5e3a commit 0957b10

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

Diff for: fieldpath/serialize-pe.go

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

57+
// readJSONIter reads a Value from a JSON iterator.
58+
// DO NOT EXPORT
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+
// writeJSONStream writes a value into a JSON stream.
69+
// DO NOT EXPORT
70+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
71+
func writeJSONStream(v value.Value, stream *jsoniter.Stream) {
72+
stream.WriteVal(v.Unstructured())
73+
}
74+
5775
// DeserializePathElement parses a serialized path element
5876
func DeserializePathElement(s string) (PathElement, error) {
5977
b := []byte(s)
@@ -75,7 +93,7 @@ func DeserializePathElement(s string) (PathElement, error) {
7593
case peValueSepBytes[0]:
7694
iter := readPool.BorrowIterator(b)
7795
defer readPool.ReturnIterator(iter)
78-
v, err := value.ReadJSONIter(iter)
96+
v, err := readJSONIter(iter)
7997
if err != nil {
8098
return PathElement{}, err
8199
}
@@ -86,7 +104,7 @@ func DeserializePathElement(s string) (PathElement, error) {
86104
fields := value.FieldList{}
87105

88106
iter.ReadObjectCB(func(iter *jsoniter.Iterator, key string) bool {
89-
v, err := value.ReadJSONIter(iter)
107+
v, err := readJSONIter(iter)
90108
if err != nil {
91109
iter.Error = err
92110
return false
@@ -141,14 +159,14 @@ func serializePathElementToWriter(w io.Writer, pe PathElement) error {
141159
stream.WriteMore()
142160
}
143161
stream.WriteObjectField(field.Name)
144-
value.WriteJSONStream(field.Value, stream)
162+
writeJSONStream(field.Value, stream)
145163
}
146164
stream.WriteObjectEnd()
147165
case pe.Value != nil:
148166
if _, err := stream.Write(peValueSepBytes); err != nil {
149167
return err
150168
}
151-
value.WriteJSONStream(*pe.Value, stream)
169+
writeJSONStream(*pe.Value, stream)
152170
case pe.Index != nil:
153171
if _, err := stream.Write(peIndexSepBytes); err != nil {
154172
return err

Diff for: value/value.go

+11-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,21 @@ 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+
// readJSONIter reads a Value from a JSON iterator.
114+
// DO NOT EXPORT
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+
// writeJSONStream writes a value into a JSON stream.
125+
// DO NOT EXPORT
126+
// TODO: eliminate this https://github.com/kubernetes-sigs/structured-merge-diff/issues/202
127+
func writeJSONStream(v Value, stream *jsoniter.Stream) {
123128
stream.WriteVal(v.Unstructured())
124129
}
125130

0 commit comments

Comments
 (0)