@inline function Base.iterate()

in src/arraytypes/list.jl [173:198]


@inline function Base.iterate(A::ToList{T,stringtype}) where {T,stringtype}
    length(A) == 0 && return nothing
    i = 1
    chunk = 2
    chunk_i = 1
    chunk_len = A.inds[chunk]
    while i > chunk_len
        chunk += 1
        chunk_len = A.inds[chunk]
    end
    val = A.data[chunk - 1]
    x = stringtype ? _codeunits(val)[1] : val[1]
    
    i += 1
    if i > chunk_len
        while true
            chunk += 1
            chunk > length(A.inds) && break
            chunk_len = A.inds[chunk]
            i <= chunk_len && break
        end
    else
        chunk_i += 1
    end
    return x, (i, chunk, chunk_i, chunk_len, length(A))
end