Skip to content

Commit f12ecbb

Browse files
authored
Merge pull request #288 from BenTheElder/unexport-jsoniter
stop exporting jsoniter based apis
2 parents dda5e3a + 046e0a3 commit f12ecbb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+164
-138
lines changed

fieldpath/element.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"sort"
2222
"strings"
2323

24-
"sigs.k8s.io/structured-merge-diff/v4/value"
24+
"sigs.k8s.io/structured-merge-diff/v6/value"
2525
)
2626

2727
// PathElement describes how to select a child field given a containing object.

fieldpath/element_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fieldpath
1919
import (
2020
"testing"
2121

22-
"sigs.k8s.io/structured-merge-diff/v4/value"
22+
"sigs.k8s.io/structured-merge-diff/v6/value"
2323
)
2424

2525
func TestPathElementSet(t *testing.T) {

fieldpath/fromvalue.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
package fieldpath
1818

1919
import (
20-
"sigs.k8s.io/structured-merge-diff/v4/value"
20+
"sigs.k8s.io/structured-merge-diff/v6/value"
2121
)
2222

2323
// SetFromValue creates a set containing every leaf field mentioned in v.

fieldpath/fromvalue_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fieldpath
1919
import (
2020
"testing"
2121

22-
"sigs.k8s.io/structured-merge-diff/v4/value"
22+
"sigs.k8s.io/structured-merge-diff/v6/value"
2323
yaml "sigs.k8s.io/yaml/goyaml.v2"
2424
)
2525

fieldpath/managers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"reflect"
2121
"testing"
2222

23-
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
23+
"sigs.k8s.io/structured-merge-diff/v6/fieldpath"
2424
)
2525

2626
var (

fieldpath/path.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"fmt"
2121
"strings"
2222

23-
"sigs.k8s.io/structured-merge-diff/v4/value"
23+
"sigs.k8s.io/structured-merge-diff/v6/value"
2424
)
2525

2626
// Path describes how to select a potentially deeply-nested child field given a

fieldpath/path_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fieldpath
1919
import (
2020
"testing"
2121

22-
"sigs.k8s.io/structured-merge-diff/v4/value"
22+
"sigs.k8s.io/structured-merge-diff/v6/value"
2323
)
2424

2525
var (

fieldpath/pathelementmap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fieldpath
1919
import (
2020
"sort"
2121

22-
"sigs.k8s.io/structured-merge-diff/v4/value"
22+
"sigs.k8s.io/structured-merge-diff/v6/value"
2323
)
2424

2525
// PathElementValueMap is a map from PathElement to value.Value.

fieldpath/pathelementmap_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fieldpath
1919
import (
2020
"testing"
2121

22-
"sigs.k8s.io/structured-merge-diff/v4/value"
22+
"sigs.k8s.io/structured-merge-diff/v6/value"
2323
)
2424

2525
func TestPathElementValueMap(t *testing.T) {

fieldpath/serialize-pe.go

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"strings"
2525

2626
jsoniter "github.com/json-iterator/go"
27-
"sigs.k8s.io/structured-merge-diff/v4/value"
27+
"sigs.k8s.io/structured-merge-diff/v6/value"
2828
)
2929

3030
var ErrUnknownPathElementType = errors.New("unknown path element type")
@@ -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

0 commit comments

Comments
 (0)