From 9f9ca4c9fc7fe2528eab1459c5deb63af2341bf3 Mon Sep 17 00:00:00 2001 From: Tao Wen Date: Sun, 18 Jun 2017 22:24:11 +0800 Subject: [PATCH] #61 remove stringLazyAny --- feature_any.go | 7 --- feature_any_string.go | 132 ------------------------------------------ 2 files changed, 139 deletions(-) diff --git a/feature_any.go b/feature_any.go index b415257..eea9a79 100644 --- a/feature_any.go +++ b/feature_any.go @@ -171,13 +171,6 @@ func (iter *Iterator) readNumberAny(positive bool) Any { } } -func (iter *Iterator) readStringAny() Any { - iter.startCapture(iter.head - 1) - iter.skipString() - lazyBuf := iter.stopCapture() - return &stringLazyAny{baseAny{}, iter.cfg, lazyBuf, nil, ""} -} - func (iter *Iterator) readObjectAny() Any { iter.startCapture(iter.head - 1) iter.skipObject() diff --git a/feature_any_string.go b/feature_any_string.go index ade8a8a..99252f3 100644 --- a/feature_any_string.go +++ b/feature_any_string.go @@ -1,141 +1,9 @@ package jsoniter import ( - "io" "strconv" ) -type stringLazyAny struct { - baseAny - cfg *frozenConfig - buf []byte - err error - cache string -} - -func (any *stringLazyAny) ValueType() ValueType { - return String -} - -func (any *stringLazyAny) fillCache() { - if any.err != nil { - return - } - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - any.cache = iter.ReadString() - if iter.Error != io.EOF { - iter.reportError("stringLazyAny", "there are bytes left") - } - any.err = iter.Error -} - -func (any *stringLazyAny) LastError() error { - return any.err -} - -func (any *stringLazyAny) ToBool() bool { - str := any.ToString() - if str == "false" { - return false - } - for _, c := range str { - switch c { - case ' ', '\n', '\r', '\t': - default: - return true - } - } - return false -} - -func (any *stringLazyAny) ToInt() int { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadInt() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToInt32() int32 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadInt32() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToInt64() int64 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadInt64() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToUint() uint { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadUint() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToUint32() uint32 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadUint32() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToUint64() uint64 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadUint64() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToFloat32() float32 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadFloat32() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToFloat64() float64 { - iter := any.cfg.BorrowIterator(any.buf) - defer any.cfg.ReturnIterator(iter) - iter.head++ - val := iter.ReadFloat64() - any.err = iter.Error - return val -} - -func (any *stringLazyAny) ToString() string { - var val string - any.err = any.cfg.Unmarshal(any.buf, &val) - return val -} - -func (any *stringLazyAny) WriteTo(stream *Stream) { - stream.Write(any.buf) -} - -func (any *stringLazyAny) GetInterface() interface{} { - any.fillCache() - return any.cache -} - type stringAny struct { baseAny err error