asyncTaskMacro

This commit is contained in:
Jaremy Creechley 2024-02-08 11:59:08 -07:00
parent 7c86049bdb
commit 9956b3d3a8
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
2 changed files with 15 additions and 3 deletions

View File

@ -10,6 +10,11 @@ proc hasReturnType*(params: NimNode): bool =
params[0].kind != nnkEmpty:
result = true
proc getReturnType*(params: NimNode): NimNode =
if params != nil and params.len > 0 and params[0] != nil and
params[0].kind != nnkEmpty:
result = params[0]
proc firstArgument*(params: NimNode): (NimNode, NimNode) =
if params != nil and
params.len > 0 and

View File

@ -14,8 +14,11 @@ macro asyncTask*(p: untyped): untyped =
body = p[6]
name = repr(procId).strip(false, true, {'*'})
echo "ASYNC_TASK: name: ", name
echo "ASYNC_TASK: params: \n", params.treeRepr
echo "\nASYNC_TASK: "
echo "name: ", name
echo "hasReturnType: ", hasReturnType(params)
echo "getReturnType: ", params.getReturnType().treeRepr
echo "params: \n", params.treeRepr
let tcall = mkCall(ident"test", params)
echo "ASYNC_TASK: call: \n", tcall.treeRepr
@ -25,9 +28,13 @@ type
proc doHashes*(data: openArray[byte],
opts: HashOptions) {.asyncTask.} =
echo "args: ", args.len()
proc doHashesRes*(data: openArray[byte],
opts: HashOptions): int {.asyncTask.} =
echo "args: ", args.len()
result = 10
when false: