@@ -5,10 +5,26 @@ struct LevelIterIdx{T}
5
5
end
6
6
LevelIterIdx (S:: AbstractMultiScaleArray , n:: Int ) = LevelIterIdx (level_iter (S, n))
7
7
8
- Base . start (l:: LevelIterIdx ) = (start (l. iter), 1 )
9
- function Base . next (l:: LevelIterIdx , state)
8
+ start (l:: LevelIterIdx ) = (start (l. iter), 1 )
9
+ function next (l:: LevelIterIdx , state)
10
10
val, new_state = next (l. iter, state[1 ])
11
11
end_idx = state[2 ] + length (val) - 1
12
12
((val, state[2 ], end_idx), (new_state, end_idx + 1 ))
13
13
end
14
- Base. done (l:: LevelIterIdx , state) = done (l. iter, state[1 ])
14
+ done (l:: LevelIterIdx , state) = done (l. iter, state[1 ])
15
+
16
+ function Base. iterate (l:: LevelIterIdx )
17
+ x = iterate (l. iter)
18
+ x == nothing && return nothing
19
+ val, new_state = x
20
+ end_idx = 1 + length (val) - 1
21
+ ((val, 1 , end_idx), (new_state, end_idx + 1 ))
22
+ end
23
+
24
+ function Base. iterate (l:: LevelIterIdx ,state)
25
+ x = iterate (l. iter,state[1 ])
26
+ x == nothing && return nothing
27
+ val, new_state = x
28
+ end_idx = state[2 ] + length (val) - 1
29
+ ((val, state[2 ], end_idx), (new_state, end_idx + 1 ))
30
+ end
0 commit comments