@propagate_inbounds function Base.getindex()

in src/arraytypes/fixedsizelist.jl [32:49]


@propagate_inbounds function Base.getindex(l::FixedSizeList{T}, i::Integer) where {T}
    @boundscheck checkbounds(l, i)
    S = Base.nonmissingtype(T)
    X = ArrowTypes.ArrowKind(ArrowTypes.ArrowType(S))
    N = ArrowTypes.getsize(X)
    Y = ArrowTypes.gettype(X)
    if X !== T && !(l.validity[i])
        return missing
    else
        off = (i - 1) * N
        if X === T && isbitstype(Y)
            tup = _unsafe_load_tuple(NTuple{N,Y}, l.data, off + 1)
        else
            tup = ntuple(j -> l.data[off + j], N)
        end
        return ArrowTypes.fromarrow(T, tup)
    end
end