Implement support for enum fields in JSON macro.

This commit is contained in:
Dominik Picheta
2017-04-09 17:22:40 +02:00
parent bd58a0d67c
commit 88cb40cd31
2 changed files with 24 additions and 2 deletions

View File

@@ -1421,7 +1421,6 @@ proc processElseBranch(recCaseNode, elseBranch, jsonNode, kindType,
## RecList
## Sym "other"
result = @[]
# TODO: Remove duplication between processOfBranch
let getEnumCall = createGetEnumCall(kindJsonNode, kindType)
# We need to build up a list of conditions from each ``of`` branch so that
@@ -1525,6 +1524,13 @@ proc processType(typeName: NimNode, obj: NimNode,
for field in obj[2]:
let nodes = processObjField(field, jsonNode)
result.add(nodes)
of nnkEnumTy:
let instType = toIdentNode(getTypeInst(typeName))
let getEnumCall = createGetEnumCall(jsonNode, instType)
result = quote do:
(
`getEnumCall`
)
of nnkSym:
case ($typeName).normalize
of "float":