in src/arraytypes/arraytypes.jl [68:126]
function arrowvector(
x,
i,
nl,
fi,
de,
ded,
meta;
dictencoding::Bool=false,
dictencode::Bool=false,
maxdepth::Int=DEFAULT_MAX_DEPTH,
kw...,
)
if nl > maxdepth
error(
"reached nested serialization level ($nl) deeper than provided max depth argument ($(maxdepth)); to increase allowed nesting level, pass `maxdepth=X`",
)
end
T = maybemissing(eltype(x))
if !(x isa DictEncode) && !dictencoding && (dictencode || DataAPI.refarray(x) !== x)
x = DictEncode(x, dictencodeid(i, nl, fi))
elseif x isa DictEncoded
return arrowvector(
DictEncodeType,
x,
i,
nl,
fi,
de,
ded,
meta;
dictencode=dictencode,
kw...,
)
elseif !(x isa DictEncode)
x = ToArrow(x)
end
S = maybemissing(eltype(x))
if ArrowTypes.hasarrowname(T)
meta = _arrowtypemeta(
_normalizemeta(meta),
String(ArrowTypes.arrowname(T)),
String(ArrowTypes.arrowmetadata(T)),
)
end
return arrowvector(
S,
x,
i,
nl,
fi,
de,
ded,
meta;
dictencode=dictencode,
maxdepth=maxdepth,
kw...,
)
end