From 44a65aa13a8e6076fed05418587103b22398dc69 Mon Sep 17 00:00:00 2001 From: Tao Wen Date: Thu, 8 Dec 2016 09:48:26 +0800 Subject: [PATCH] remove callback api --- jsoniter.go | 67 ----------------------------------------- jsoniter_array_test.go | 24 --------------- jsoniter_object_test.go | 29 ------------------ 3 files changed, 120 deletions(-) diff --git a/jsoniter.go b/jsoniter.go index 2eaf980..41d6001 100644 --- a/jsoniter.go +++ b/jsoniter.go @@ -504,73 +504,6 @@ func (iter *Iterator) ReadArray() (ret bool) { } } -func (iter *Iterator) ReadArrayCB(cb func()) { - c := iter.nextToken() - if c == 'n' { - iter.skipUntilBreak() - return // null - } - if c != '[' { - iter.ReportError("ReadArrayCB", "expect [ or n") - return - } - c = iter.nextToken() - if c == ']' { - return // [] - } else { - iter.unreadByte() - } - for { - if iter.Error != nil { - return - } - cb() - c = iter.nextToken() - if c == ']' { - return - } - if c != ',' { - iter.ReportError("ReadArrayCB", "expect , or ]") - return - } - iter.skipWhitespaces() - } -} - -func (iter *Iterator) ReadObjectCB(cb func(string)) { - c := iter.nextToken() - if c == 'n' { - iter.skipUntilBreak() - return // null - } - if c != '{' { - iter.ReportError("ReadObjectCB", "expect { or n") - return - } - c = iter.nextToken() - if c == '}' { - return // [] - } else { - iter.unreadByte() - } - for { - iter.skipWhitespaces() - field := iter.readObjectField() - if iter.Error != nil { - return - } - cb(field) - c = iter.nextToken() - if c == '}' { - return // end of object - } - if c != ',' { - iter.ReportError("ReadObjectCB", `expect ,`) - return - } - } -} - func (iter *Iterator) ReadObject() (ret string) { c := iter.nextToken() if iter.Error != nil { diff --git a/jsoniter_array_test.go b/jsoniter_array_test.go index ffbf225..7deb9f5 100644 --- a/jsoniter_array_test.go +++ b/jsoniter_array_test.go @@ -50,17 +50,6 @@ func Test_two_elements(t *testing.T) { } } -func Test_two_elements_cb(t *testing.T) { - iter := ParseString(`[1,2]`) - total := int64(0) - iter.ReadArrayCB(func() { - total += iter.ReadInt64() - }) - if total != 3 { - t.Fatal(total) - } -} - func Test_invalid_array(t *testing.T) { iter := ParseString(`[`) iter.ReadArray() @@ -141,19 +130,6 @@ func Benchmark_jsoniter_array(b *testing.B) { } } -func Benchmark_jsoniter_array_cb(b *testing.B) { - b.ReportAllocs() - input := []byte(`[1,2,3,4,5,6,7,8,9]`) - iter := ParseBytes(input) - b.ResetTimer() - for n := 0; n < b.N; n++ { - iter.Reuse(input) - iter.ReadArrayCB(func() { - iter.ReadUint64() - }) - } -} - func Benchmark_json_array(b *testing.B) { for n := 0; n < b.N; n++ { result := []interface{}{} diff --git a/jsoniter_object_test.go b/jsoniter_object_test.go index 2ccea53..42e4dcc 100644 --- a/jsoniter_object_test.go +++ b/jsoniter_object_test.go @@ -66,18 +66,6 @@ func Test_two_field(t *testing.T) { } } -func Test_cb(t *testing.T) { - iter := ParseString(`{ "a": "b" , "c": "d" }`) - count := 0 - iter.ReadObjectCB(func(field string) { - iter.Skip() - count += 1 - }) - if count != 2 { - t.Fatal(count) - } -} - type TestObj struct { Field1 string Field2 uint64 @@ -100,23 +88,6 @@ func Benchmark_jsoniter_object(b *testing.B) { } } -func Benchmark_jsoniter_cb(b *testing.B) { - for n := 0; n < b.N; n++ { - iter := ParseString(`{"field1": "1", "field2": 2}`) - obj := TestObj{} - iter.ReadObjectCB(func(field string) { - switch field { - case "field1": - obj.Field1 = iter.ReadString() - case "field2": - obj.Field2 = iter.ReadUint64() - default: - iter.ReportError("bind object", "unexpected field") - } - }) - } -} - func Benchmark_json_object(b *testing.B) { for n := 0; n < b.N; n++ { result := TestObj{}