mirror of
https://github.com/Hilbis/Hilbish
synced 2025-07-01 16:52:03 +00:00
47 lines
1.1 KiB
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)
|
|
}
|
|
}
|