// IndexGet returns the value for the given key.
IndexGet returns the value for the given key.
// IndexGet returns the value for the given key .
func (n *NucleiVar) IndexGet(index tengo.Object) (res tengo.Object, err error) {
	strIdx, ok := tengo.ToString(index)
	if !ok {
		err = tengo.ErrInvalidIndexType
		return
	}
	r, ok := n.InternalVars[strIdx]
	if !ok {
		return tengo.UndefinedValue, nil
	}
	switch rt := r.(type) {
	case bool:
		if rt {
			res = tengo.TrueValue
		} else {
			res = tengo.FalseValue
		}
	case string:
		res = &tengo.String{Value: rt}
	case []string:
		rr, ok := r.([]string)
		if !ok {
			break
		}
		var resA []tengo.Object
		for _, rrr := range rr {
			resA = append(resA, &tengo.String{Value: rrr})
		}
		res = &tengo.Array{Value: resA}
	}
	return res, nil
}
func ( n * NucleiVar ) IndexGet ( index tengo . Object ) ( res tengo . Object , err error ) { strIdx , ok := tengo . ToString ( index ) if ! ok { err = tengo . ErrInvalidIndexType return } r , ok := n . InternalVars [ strIdx ] if ! ok { return tengo . UndefinedValue , nil } switch rt := r . ( type ) { case bool : if rt { res = tengo . TrueValue } else { res = tengo . FalseValue } case string : res = & tengo . String { Value : rt } case [ ] string : rr , ok := r . ( [ ] string ) if ! ok { break } var resA [ ] tengo . Object for _ , rrr := range rr { resA = append ( resA , & tengo . String { Value : rrr } ) } res = & tengo . Array { Value : resA } } return res , nil }
IndexGet returns the value for the given key.
IndexGet returns the value for the given key .