2024-06-09 10:41:06 +02:00
|
|
|
// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
|
|
// All rights reserved.
|
|
|
|
|
|
|
|
// bind-go-function.go
|
|
|
|
package expr
|
|
|
|
|
|
|
|
// ---- Linking with Go functions
|
|
|
|
type golangFunctor struct {
|
|
|
|
baseFunctor
|
|
|
|
f FuncTemplate
|
|
|
|
}
|
|
|
|
|
2024-07-28 18:49:08 +02:00
|
|
|
func NewGolangFunctor2(f FuncTemplate) *golangFunctor {
|
2024-06-09 10:41:06 +02:00
|
|
|
return &golangFunctor{f: f}
|
|
|
|
}
|
|
|
|
|
2024-07-13 17:14:25 +02:00
|
|
|
func (functor *golangFunctor) TypeName() string {
|
|
|
|
return "GoFunctor"
|
|
|
|
}
|
|
|
|
|
2024-07-28 18:49:08 +02:00
|
|
|
func (functor *golangFunctor) InvokeNamed(ctx ExprContext, name string, args map[string]any) (result any, err error) {
|
2024-06-09 10:41:06 +02:00
|
|
|
return functor.f(ctx, name, args)
|
|
|
|
}
|