Files
expr/builtin/function.go
T
2025-03-09 13:07:38 +01:00

24 lines
470 B
Go

package builtin
import (
"reflect"
)
type Function struct {
Name string
Fast func(arg any) any
Func func(args ...any) (any, error)
Safe func(args ...any) (any, uint, error)
Types []reflect.Type
Validate func(args []reflect.Type) (reflect.Type, error)
Deref func(i int, arg reflect.Type) bool
Predicate bool
}
func (f *Function) Type() reflect.Type {
if len(f.Types) > 0 {
return f.Types[0]
}
return reflect.TypeOf(f.Func)
}