struct CustomIter { mut: idx int } fn new_custom_iter() CustomIter { return CustomIter{ idx: 0 } } fn (mut a CustomIter) next() ?int { if a.idx == 4 { return none } else { a.idx++ return a.idx * 2 } } fn main() { for x in new_custom_iter() { println('a.${x}') } for ix, val in new_custom_iter() { println('b.${ix}=${val}') } println('end') }