gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

any_number.go (2616B)


      1 package jsoniter
      2 
      3 import (
      4 	"io"
      5 	"unsafe"
      6 )
      7 
      8 type numberLazyAny struct {
      9 	baseAny
     10 	cfg *frozenConfig
     11 	buf []byte
     12 	err error
     13 }
     14 
     15 func (any *numberLazyAny) ValueType() ValueType {
     16 	return NumberValue
     17 }
     18 
     19 func (any *numberLazyAny) MustBeValid() Any {
     20 	return any
     21 }
     22 
     23 func (any *numberLazyAny) LastError() error {
     24 	return any.err
     25 }
     26 
     27 func (any *numberLazyAny) ToBool() bool {
     28 	return any.ToFloat64() != 0
     29 }
     30 
     31 func (any *numberLazyAny) ToInt() int {
     32 	iter := any.cfg.BorrowIterator(any.buf)
     33 	defer any.cfg.ReturnIterator(iter)
     34 	val := iter.ReadInt()
     35 	if iter.Error != nil && iter.Error != io.EOF {
     36 		any.err = iter.Error
     37 	}
     38 	return val
     39 }
     40 
     41 func (any *numberLazyAny) ToInt32() int32 {
     42 	iter := any.cfg.BorrowIterator(any.buf)
     43 	defer any.cfg.ReturnIterator(iter)
     44 	val := iter.ReadInt32()
     45 	if iter.Error != nil && iter.Error != io.EOF {
     46 		any.err = iter.Error
     47 	}
     48 	return val
     49 }
     50 
     51 func (any *numberLazyAny) ToInt64() int64 {
     52 	iter := any.cfg.BorrowIterator(any.buf)
     53 	defer any.cfg.ReturnIterator(iter)
     54 	val := iter.ReadInt64()
     55 	if iter.Error != nil && iter.Error != io.EOF {
     56 		any.err = iter.Error
     57 	}
     58 	return val
     59 }
     60 
     61 func (any *numberLazyAny) ToUint() uint {
     62 	iter := any.cfg.BorrowIterator(any.buf)
     63 	defer any.cfg.ReturnIterator(iter)
     64 	val := iter.ReadUint()
     65 	if iter.Error != nil && iter.Error != io.EOF {
     66 		any.err = iter.Error
     67 	}
     68 	return val
     69 }
     70 
     71 func (any *numberLazyAny) ToUint32() uint32 {
     72 	iter := any.cfg.BorrowIterator(any.buf)
     73 	defer any.cfg.ReturnIterator(iter)
     74 	val := iter.ReadUint32()
     75 	if iter.Error != nil && iter.Error != io.EOF {
     76 		any.err = iter.Error
     77 	}
     78 	return val
     79 }
     80 
     81 func (any *numberLazyAny) ToUint64() uint64 {
     82 	iter := any.cfg.BorrowIterator(any.buf)
     83 	defer any.cfg.ReturnIterator(iter)
     84 	val := iter.ReadUint64()
     85 	if iter.Error != nil && iter.Error != io.EOF {
     86 		any.err = iter.Error
     87 	}
     88 	return val
     89 }
     90 
     91 func (any *numberLazyAny) ToFloat32() float32 {
     92 	iter := any.cfg.BorrowIterator(any.buf)
     93 	defer any.cfg.ReturnIterator(iter)
     94 	val := iter.ReadFloat32()
     95 	if iter.Error != nil && iter.Error != io.EOF {
     96 		any.err = iter.Error
     97 	}
     98 	return val
     99 }
    100 
    101 func (any *numberLazyAny) ToFloat64() float64 {
    102 	iter := any.cfg.BorrowIterator(any.buf)
    103 	defer any.cfg.ReturnIterator(iter)
    104 	val := iter.ReadFloat64()
    105 	if iter.Error != nil && iter.Error != io.EOF {
    106 		any.err = iter.Error
    107 	}
    108 	return val
    109 }
    110 
    111 func (any *numberLazyAny) ToString() string {
    112 	return *(*string)(unsafe.Pointer(&any.buf))
    113 }
    114 
    115 func (any *numberLazyAny) WriteTo(stream *Stream) {
    116 	stream.Write(any.buf)
    117 }
    118 
    119 func (any *numberLazyAny) GetInterface() interface{} {
    120 	iter := any.cfg.BorrowIterator(any.buf)
    121 	defer any.cfg.ReturnIterator(iter)
    122 	return iter.Read()
    123 }