diff --git a/src/apatheia/macroutils.nim b/src/apatheia/macroutils.nim index 42ae072..25af953 100644 --- a/src/apatheia/macroutils.nim +++ b/src/apatheia/macroutils.nim @@ -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 diff --git a/src/apatheia/tasks.nim b/src/apatheia/tasks.nim index be9b318..a2c5516 100644 --- a/src/apatheia/tasks.nim +++ b/src/apatheia/tasks.nim @@ -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: