mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-01 09:31:18 +00:00
Improved assertion error messages on usage of JsonNode iterators on wrong kinds (#13389)
This commit is contained in:
@@ -739,33 +739,33 @@ proc `$`*(node: JsonNode): string =
|
||||
|
||||
iterator items*(node: JsonNode): JsonNode =
|
||||
## Iterator for the items of `node`. `node` has to be a JArray.
|
||||
assert node.kind == JArray
|
||||
assert node.kind == JArray, ": items() can not iterate a JsonNode of kind " & $node.kind
|
||||
for i in items(node.elems):
|
||||
yield i
|
||||
|
||||
iterator mitems*(node: var JsonNode): var JsonNode =
|
||||
## Iterator for the items of `node`. `node` has to be a JArray. Items can be
|
||||
## modified.
|
||||
assert node.kind == JArray
|
||||
assert node.kind == JArray, ": mitems() can not iterate a JsonNode of kind " & $node.kind
|
||||
for i in mitems(node.elems):
|
||||
yield i
|
||||
|
||||
iterator pairs*(node: JsonNode): tuple[key: string, val: JsonNode] =
|
||||
## Iterator for the child elements of `node`. `node` has to be a JObject.
|
||||
assert node.kind == JObject
|
||||
assert node.kind == JObject, ": pairs() can not iterate a JsonNode of kind " & $node.kind
|
||||
for key, val in pairs(node.fields):
|
||||
yield (key, val)
|
||||
|
||||
iterator keys*(node: JsonNode): string =
|
||||
## Iterator for the keys in `node`. `node` has to be a JObject.
|
||||
assert node.kind == JObject
|
||||
assert node.kind == JObject, ": keys() can not iterate a JsonNode of kind " & $node.kind
|
||||
for key in node.fields.keys:
|
||||
yield key
|
||||
|
||||
iterator mpairs*(node: var JsonNode): tuple[key: string, val: var JsonNode] =
|
||||
## Iterator for the child elements of `node`. `node` has to be a JObject.
|
||||
## Values can be modified
|
||||
assert node.kind == JObject
|
||||
assert node.kind == JObject, ": mpairs() can not iterate a JsonNode of kind " & $node.kind
|
||||
for key, val in mpairs(node.fields):
|
||||
yield (key, val)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user