Source File
any_array.go
Belonging Package
github.com/json-iterator/go
package jsoniterimport ()type arrayLazyAny struct {baseAnycfg *frozenConfigbuf []byteerr error}func ( *arrayLazyAny) () ValueType {return ArrayValue}func ( *arrayLazyAny) () Any {return}func ( *arrayLazyAny) () error {return .err}func ( *arrayLazyAny) () bool {:= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator()return .ReadArray()}func ( *arrayLazyAny) () int {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () int32 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () int64 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () uint {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () uint32 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () uint64 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () float32 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () float64 {if .ToBool() {return 1}return 0}func ( *arrayLazyAny) () string {return *(*string)(unsafe.Pointer(&.buf))}func ( *arrayLazyAny) ( interface{}) {:= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator().ReadVal()}func ( *arrayLazyAny) ( ...interface{}) Any {if len() == 0 {return}switch firstPath := [0].(type) {case int::= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator():= locateArrayElement(, )if == nil {return newInvalidAny()}.ResetBytes()return locatePath(, [1:])case int32:if '*' == {:= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator():= make([]Any, 0).ReadArrayCB(func( *Iterator) bool {:= .readAny().Get([1:]...)if .ValueType() != InvalidValue {= append(, )}return true})return wrapArray()}return newInvalidAny()default:return newInvalidAny()}}func ( *arrayLazyAny) () int {:= 0:= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator().ReadArrayCB(func( *Iterator) bool {++.Skip()return true})return}func ( *arrayLazyAny) ( *Stream) {.Write(.buf)}func ( *arrayLazyAny) () interface{} {:= .cfg.BorrowIterator(.buf)defer .cfg.ReturnIterator()return .Read()}type arrayAny struct {baseAnyval reflect.Value}func wrapArray( interface{}) *arrayAny {return &arrayAny{baseAny{}, reflect.ValueOf()}}func ( *arrayAny) () ValueType {return ArrayValue}func ( *arrayAny) () Any {return}func ( *arrayAny) () error {return nil}func ( *arrayAny) () bool {return .val.Len() != 0}func ( *arrayAny) () int {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () int32 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () int64 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () uint {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () uint32 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () uint64 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () float32 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () float64 {if .val.Len() == 0 {return 0}return 1}func ( *arrayAny) () string {, := MarshalToString(.val.Interface())return}func ( *arrayAny) ( ...interface{}) Any {if len() == 0 {return}switch firstPath := [0].(type) {case int:if < 0 || >= .val.Len() {return newInvalidAny()}return Wrap(.val.Index().Interface())case int32:if '*' == {:= make([]Any, 0)for := 0; < .val.Len(); ++ {:= Wrap(.val.Index().Interface()).Get([1:]...)if .ValueType() != InvalidValue {= append(, )}}return wrapArray()}return newInvalidAny()default:return newInvalidAny()}}func ( *arrayAny) () int {return .val.Len()}func ( *arrayAny) ( *Stream) {.WriteVal(.val)}func ( *arrayAny) () interface{} {return .val.Interface()}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |