@inline function Base.iterate()

in src/arraytypes/list.jl [200:220]


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