in src/arraytypes/list.jl [224:245]
function arrowvector(::ListKind, x, i, nl, fi, de, ded, meta; largelists::Bool=false, kw...)
len = length(x)
validity = ValidityBitmap(x)
flat = ToList(x; largelists=largelists)
offsets = Offsets(UInt8[], flat.inds)
if liststringtype(typeof(flat)) && eltype(flat) == UInt8
data = flat
T = origtype(flat)
else
data =
arrowvector(flat, i, nl + 1, fi, de, ded, nothing; largelists=largelists, kw...)
T = withmissing(eltype(x), Vector{eltype(data)})
end
return List{T,eltype(flat.inds),typeof(data)}(
UInt8[],
validity,
offsets,
data,
len,
meta,
)
end