From c1cc64b68b5b091fff55bd17d5064be551922232 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Thu, 8 Feb 2024 12:24:38 -0700 Subject: [PATCH] updates --- src/apatheia/macroutils.nim | 8 ++++++++ src/apatheia/tasks.nim | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/apatheia/macroutils.nim b/src/apatheia/macroutils.nim index 25af953..f8e40e6 100644 --- a/src/apatheia/macroutils.nim +++ b/src/apatheia/macroutils.nim @@ -129,3 +129,11 @@ proc mkCall*(callName, params: NimNode): NimNode = argList.add paramId result = newCall(callName, argList) # echo "mkCall return:\n", treeRepr result + +proc mkProc*(name, params, body: NimNode): NimNode = + let params = params.copyNimTree() + result = quote do: + proc `name`() {.nimcall.} = + `body` + for param in params: + result[3].add param diff --git a/src/apatheia/tasks.nim b/src/apatheia/tasks.nim index 4672dcb..5b267a3 100644 --- a/src/apatheia/tasks.nim +++ b/src/apatheia/tasks.nim @@ -33,9 +33,12 @@ macro asyncTask*(p: untyped): untyped = checks.add newCall("checkParamType", paramId) echo "asyncTask:checks:\n", checks.repr + echo "asyncTask:mkProc:\n", repr mkProc(ident "tester", params, body) + result = p echo "asyncTask:body:\n", result.repr + type HashOptions* = object striped*: bool