elvish/pkg/eval/callable.go
2022-11-20 19:31:07 +00:00

25 lines
535 B
Go

package eval
import (
"reflect"
"src.elv.sh/pkg/eval/vals"
)
// Callable wraps the Call method.
type Callable interface {
// Call calls the receiver in a Frame with arguments and options.
Call(fm *Frame, args []any, opts map[string]any) error
}
var (
// NoArgs is an empty argument list. It can be used as an argument to Call.
NoArgs = []any{}
// NoOpts is an empty option map. It can be used as an argument to Call.
NoOpts = map[string]any{}
)
func init() {
vals.CallableType = reflect.TypeOf((*Callable)(nil)).Elem()
}