ref: b941cdfdf1940e4a64492daf1a15d921c32f2dc2
dir: /lib/iter/ref.myr/
use std
pkg iter =
type refiter(@a) = struct
idx : std.size
sl : @a[:]
;;
impl iterable refiter(@a) -> @a#
generic byref : (sl : @a[:] -> refiter(@a))
;;
generic byref = {a
-> [.sl = a, .idx = 0]
}
impl iterable refiter(@a) -> @a# =
__iternext__ = {itp, valp
if itp.idx == itp.sl.len
-> false
;;
valp# = &itp.sl[itp.idx]
itp.idx++
-> true
}
__iterfin__ = {itp, valp
}
;;