in src/eltypes.jl [445:474]
function arrowtype(b, x::List{T,O,A}) where {T,O,A}
if liststringtype(x)
if T <: AbstractString || T <: Union{AbstractString,Missing}
if O == Int32
Meta.utf8Start(b)
return Meta.Utf8, Meta.utf8End(b), nothing
else
Meta.largUtf8Start(b)
return Meta.LargeUtf8, Meta.largUtf8End(b), nothing
end
else
if O == Int32
Meta.binaryStart(b)
return Meta.Binary, Meta.binaryEnd(b), nothing
else
Meta.largeBinaryStart(b)
return Meta.LargeBinary, Meta.largeBinaryEnd(b), nothing
end
end
else
children = [fieldoffset(b, "", x.data)]
if O == Int32
Meta.listStart(b)
return Meta.List, Meta.listEnd(b), children
else
Meta.largeListStart(b)
return Meta.LargeList, Meta.largeListEnd(b), children
end
end
end