nondescript/src/ndspkg/types/native.nim

27 lines
557 B
Nim

type
NatReturn* = object
ok*: bool
msg*: string
Native* = uint32
natProc = proc (args: seq[uint], retval: var uint): NatReturn
# NatReturn misc
proc natError*(msg: string): NatReturn =
NatReturn(ok: false, msg: msg)
const natOk* = NatReturn(ok: true)
# natives
var natives*: seq[natProc]
var nativeNames*: seq[string]
proc defNative*(name: string, action: natProc) =
natives.add(action)
nativeNames.add(name)
proc callNative*(native: Native, args: seq[uint], retval: var uint): NatReturn =
natives[native.int](args, retval)