elvish/pkg/eval/callable.go

25 lines
535 B
Go
Raw Normal View History

2020-09-05 06:24:52 +08:00
package eval
import (
"reflect"
"src.elv.sh/pkg/eval/vals"
)
2020-09-05 06:24:52 +08:00
// 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
2020-09-05 06:24:52 +08:00
}
var (
// NoArgs is an empty argument list. It can be used as an argument to Call.
NoArgs = []any{}
2020-09-05 06:24:52 +08:00
// NoOpts is an empty option map. It can be used as an argument to Call.
NoOpts = map[string]any{}
2020-09-05 06:24:52 +08:00
)
func init() {
vals.CallableType = reflect.TypeOf((*Callable)(nil)).Elem()
}