Improved assertion error messages on usage of JsonNode iterators on wrong kinds (#13389)
This commit is contained in:
parent
006fe4cfc4
commit
73553621a1
1 changed files with 5 additions and 5 deletions
|
|
@ -739,33 +739,33 @@ proc `$`*(node: JsonNode): string =
|
||||||
|
|
||||||
iterator items*(node: JsonNode): JsonNode =
|
iterator items*(node: JsonNode): JsonNode =
|
||||||
## Iterator for the items of `node`. `node` has to be a JArray.
|
## 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):
|
for i in items(node.elems):
|
||||||
yield i
|
yield i
|
||||||
|
|
||||||
iterator mitems*(node: var JsonNode): var JsonNode =
|
iterator mitems*(node: var JsonNode): var JsonNode =
|
||||||
## Iterator for the items of `node`. `node` has to be a JArray. Items can be
|
## Iterator for the items of `node`. `node` has to be a JArray. Items can be
|
||||||
## modified.
|
## 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):
|
for i in mitems(node.elems):
|
||||||
yield i
|
yield i
|
||||||
|
|
||||||
iterator pairs*(node: JsonNode): tuple[key: string, val: JsonNode] =
|
iterator pairs*(node: JsonNode): tuple[key: string, val: JsonNode] =
|
||||||
## Iterator for the child elements of `node`. `node` has to be a JObject.
|
## 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):
|
for key, val in pairs(node.fields):
|
||||||
yield (key, val)
|
yield (key, val)
|
||||||
|
|
||||||
iterator keys*(node: JsonNode): string =
|
iterator keys*(node: JsonNode): string =
|
||||||
## Iterator for the keys in `node`. `node` has to be a JObject.
|
## 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:
|
for key in node.fields.keys:
|
||||||
yield key
|
yield key
|
||||||
|
|
||||||
iterator mpairs*(node: var JsonNode): tuple[key: string, val: var JsonNode] =
|
iterator mpairs*(node: var JsonNode): tuple[key: string, val: var JsonNode] =
|
||||||
## Iterator for the child elements of `node`. `node` has to be a JObject.
|
## Iterator for the child elements of `node`. `node` has to be a JObject.
|
||||||
## Values can be modified
|
## 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):
|
for key, val in mpairs(node.fields):
|
||||||
yield (key, val)
|
yield (key, val)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue