aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/json-iterator/go/iter_array.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-01-11 02:25:41 -0800
committerGitHub <noreply@github.com>2019-01-11 02:25:41 -0800
commit26f2b7debde313af4a5ae39727c66a3f8fd59be4 (patch)
tree1ab2968feabc60768ac04c7f832ddfb93f97e3ad /vendor/github.com/json-iterator/go/iter_array.go
parent36d96c19f947aeac2675afe64a3b482e54f9e4c4 (diff)
parent3966d3bf4e6be2975c330af64ce6ba86b4eeabe0 (diff)
downloadpodman-26f2b7debde313af4a5ae39727c66a3f8fd59be4.tar.gz
podman-26f2b7debde313af4a5ae39727c66a3f8fd59be4.tar.bz2
podman-26f2b7debde313af4a5ae39727c66a3f8fd59be4.zip
Merge pull request #2105 from mheon/jsoniter
Use jsoniter instead of easyjson
Diffstat (limited to 'vendor/github.com/json-iterator/go/iter_array.go')
-rw-r--r--vendor/github.com/json-iterator/go/iter_array.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/github.com/json-iterator/go/iter_array.go b/vendor/github.com/json-iterator/go/iter_array.go
new file mode 100644
index 000000000..6188cb457
--- /dev/null
+++ b/vendor/github.com/json-iterator/go/iter_array.go
@@ -0,0 +1,58 @@
+package jsoniter
+
+// ReadArray read array element, tells if the array has more element to read.
+func (iter *Iterator) ReadArray() (ret bool) {
+ c := iter.nextToken()
+ switch c {
+ case 'n':
+ iter.skipThreeBytes('u', 'l', 'l')
+ return false // null
+ case '[':
+ c = iter.nextToken()
+ if c != ']' {
+ iter.unreadByte()
+ return true
+ }
+ return false
+ case ']':
+ return false
+ case ',':
+ return true
+ default:
+ iter.ReportError("ReadArray", "expect [ or , or ] or n, but found "+string([]byte{c}))
+ return
+ }
+}
+
+// ReadArrayCB read array with callback
+func (iter *Iterator) ReadArrayCB(callback func(*Iterator) bool) (ret bool) {
+ c := iter.nextToken()
+ if c == '[' {
+ c = iter.nextToken()
+ if c != ']' {
+ iter.unreadByte()
+ if !callback(iter) {
+ return false
+ }
+ c = iter.nextToken()
+ for c == ',' {
+ if !callback(iter) {
+ return false
+ }
+ c = iter.nextToken()
+ }
+ if c != ']' {
+ iter.ReportError("ReadArrayCB", "expect ] in the end, but found "+string([]byte{c}))
+ return false
+ }
+ return true
+ }
+ return true
+ }
+ if c == 'n' {
+ iter.skipThreeBytes('u', 'l', 'l')
+ return true // null
+ }
+ iter.ReportError("ReadArrayCB", "expect [ or n, but found "+string([]byte{c}))
+ return false
+}