github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/jsoni/any_invalid.go (about) 1 package jsoni 2 3 import ( 4 "context" 5 "fmt" 6 ) 7 8 type invalidAny struct { 9 baseAny 10 err error 11 } 12 13 func newInvalidAny(path []interface{}) *invalidAny { 14 return &invalidAny{baseAny{}, fmt.Errorf("%v not found", path)} 15 } 16 17 func (a *invalidAny) LastError() error { return a.err } 18 func (a *invalidAny) ValueType() ValueType { return InvalidValue } 19 func (a *invalidAny) MustBeValid() Any { panic(a.err) } 20 func (a *invalidAny) ToBool() bool { return false } 21 func (a *invalidAny) ToInt() int { return 0 } 22 func (a *invalidAny) ToInt32() int32 { return 0 } 23 func (a *invalidAny) ToInt64() int64 { return 0 } 24 func (a *invalidAny) ToUint() uint { return 0 } 25 func (a *invalidAny) ToUint32() uint32 { return 0 } 26 func (a *invalidAny) ToUint64() uint64 { return 0 } 27 func (a *invalidAny) ToFloat32() float32 { return 0 } 28 func (a *invalidAny) ToFloat64() float64 { return 0 } 29 func (a *invalidAny) ToString() string { return "" } 30 func (a *invalidAny) WriteTo(context.Context, *Stream) {} 31 32 func (a *invalidAny) Get(path ...interface{}) Any { 33 if a.err == nil { 34 return &invalidAny{baseAny{}, fmt.Errorf("get %v from invalid", path)} 35 } 36 return &invalidAny{baseAny{}, fmt.Errorf("%v, get %v from invalid", a.err, path)} 37 } 38 39 func (a *invalidAny) Parse() *Iterator { return nil } 40 func (a *invalidAny) GetInterface(context.Context) interface{} { return nil }