This module implements enumerate syntactic sugar based on Nim’s macro system.
Imports
Macros
macro enumerate(x: ForLoopStmt): untyped
Enumerating iterator for collections.
It yields (count, value) tuples (which must be immediately unpacked). The default starting count 0 can be manually overridden if needed.
Example:
let a = [10, 20, 30]
var b: seq[(int, int)] = @[]
for i, x in enumerate(a):
b.add((i, x))
assert b == @[(0, 10), (1, 20), (2, 30)]
let c = "abcd"
var d: seq[(int, char)]
for (i, x) in enumerate(97, c):
d.add((i, x))
assert d == @[(97, 'a'), (98, 'b'), (99, 'c'), (100, 'd')]