2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-07-01 16:52:03 +00:00
Hilbish/moonlight/function_golua.go

47 lines
1.1 KiB
Go

//go:build !midnight
package moonlight
import (
rt "github.com/arnodel/golua/runtime"
)
type GoFunctionFunc = rt.GoFunctionFunc
func (mlr *Runtime) CheckNArgs(num int) error {
return mlr.rt.MainThread().CurrentCont().(*rt.GoCont).CheckNArgs(num)
}
func (mlr *Runtime) Check1Arg() error {
return mlr.rt.MainThread().CurrentCont().(*rt.GoCont).Check1Arg()
}
func (mlr *Runtime) StringArg(num int) (string, error) {
return mlr.rt.MainThread().CurrentCont().(*rt.GoCont).StringArg(num)
}
func (mlr *Runtime) TableArg(num int) (*Table, error) {
tbl, err := mlr.rt.MainThread().CurrentCont().(*rt.GoCont).TableArg(num)
if err != nil {
return nil, err
}
return &Table{
lt: tbl,
}, nil
}
func (mlr *Runtime) ClosureArg(num int) (*Closure, error) {
return mlr.rt.MainThread().CurrentCont().(*rt.GoCont).ClosureArg(num)
}
func (mlr *Runtime) Arg(num int) Value {
return mlr.rt.MainThread().CurrentCont().(*rt.GoCont).Arg(num)
}
func (mlr *Runtime) GoFunction(fun GoToLuaFunc) GoFunctionFunc {
return func(t *rt.Thread, c *rt.GoCont) (rt.Cont, error) {
return c.Next(), fun(mlr)
}
}