RosettaCodeData/Task/Add-a-variable-to-a-class-instance-at-runtime/Nim/add-a-variable-to-a-class-instance-at-runtime.nim
2023-07-01 13:44:08 -04:00

10 lines
292 B
Nim

import json
{.experimental: "dotOperators".}
template `.=`(js: JsonNode, field: untyped, value: untyped) =
js[astToStr(field)] = %value
template `.`(js: JsonNode, field: untyped): JsonNode = js[astToStr(field)]
var obj = newJObject()
obj.foo = "bar"
echo(obj.foo)
obj.key = 3
echo(obj.key)