import macros
import tables
macro kwargs(args: varargs[untyped]): untyped =
result = newNimNode(nnkTableConstr)
for arg in args:
expectKind arg, nnkExprEqExpr
result.add newColonExpr(arg[0].toStrLit, newCall(bindSym"$", arg[1]))
result = newCall(bindSym"toTable", result)
proc myFunc(a, b: int, kwargs: Table[string, string]): float =
for key, value in kwargs:
echo(key, ": ", value)
return 10.0
var i = myFunc(45, 78, kwargs(hello="world", name="cyberlis", qwerty="xxxxx"))