diff --git a/helpers.go b/helpers.go index eff26a5..48e1133 100644 --- a/helpers.go +++ b/helpers.go @@ -20,8 +20,8 @@ func EvalString(ctx ExprContext, source string) (result any, err error) { } type Arg struct { - name string - value any + Name string + Value any } func EvalStringA(source string, args ...Arg) (result any, err error) { @@ -31,23 +31,23 @@ func EvalStringA(source string, args ...Arg) (result any, err error) { func EvalStringV(source string, args []Arg) (result any, err error) { ctx := NewSimpleFuncStore() for _, arg := range args { - if isFunc(arg.value) { - if f, ok := arg.value.(FuncTemplate); ok { + if isFunc(arg.Value) { + if f, ok := arg.Value.(FuncTemplate); ok { functor := &simpleFunctor{f: f} - ctx.RegisterFunc(arg.name, functor, 0, -1) + ctx.RegisterFunc(arg.Name, functor, 0, -1) } else { - err = fmt.Errorf("invalid function specification: %q", arg.name) + err = fmt.Errorf("invalid function specification: %q", arg.Name) } - } else if integer, ok := anyInteger(arg.value); ok { - ctx.SetVar(arg.name, integer) - } else if float, ok := anyFloat(arg.value); ok { - ctx.SetVar(arg.name, float) - } else if _, ok := arg.value.(string); ok { - ctx.SetVar(arg.name, arg.value) - } else if _, ok := arg.value.(bool); ok { - ctx.SetVar(arg.name, arg.value) + } else if integer, ok := anyInteger(arg.Value); ok { + ctx.SetVar(arg.Name, integer) + } else if float, ok := anyFloat(arg.Value); ok { + ctx.SetVar(arg.Name, float) + } else if _, ok := arg.Value.(string); ok { + ctx.SetVar(arg.Name, arg.Value) + } else if _, ok := arg.Value.(bool); ok { + ctx.SetVar(arg.Name, arg.Value) } else { - err = fmt.Errorf("unsupported type %T specified for item %q", arg.value, arg.name) + err = fmt.Errorf("unsupported type %T specified for item %q", arg.Value, arg.Name) } }